canvas练习,圆形自上向下运动效果实现
2017-03-07 23:01
288 查看
做完这个练习,真正感受到用面向对象方法实现的好处,如果把圆型的运动阶段放在对象属性里面,就一目了然!下面代码没有用对象方法
<body>
<canvas id="canvas" width="300px" height="400px"></canvas>
<script>
var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
var STATUS=0;
var VISIBLE=1;
var a=1;
var img=new Image();
img.src="bg.jpg";
var r=Math.random()*41+10;
var x=Math.random()*291;
x+r>300 && (x=300-r);
x-r<0 && (x=r);
var y=-r;
setInterval(function(){
if(y+r>400){
y=400-r;
STATUS=1;
}else if(y-r<0){
y=r;
STATUS=0;
}
if(a<0){
VISIBLE=0;
a=0;
}else if(a>1){
a=1;
VISIBLE=1;
}
ctx.drawImage(img,0,0,300,400);
ctx.fillStyle="rgba(250,0,0,"+a+")";
ctx.beginPath();
ctx.arc(x,y,r,0,Math.PI*2);
ctx.fill();
if(STATUS==0){
y+=3;
}else if(STATUS==1){
y=y-3;
}
if(VISIBLE==1){
a=a-0.01;
}else if(VISIBLE==0){
a+=0.01;
}
},50);
</script>
</body>
<body>
<canvas id="canvas" width="300px" height="400px"></canvas>
<script>
var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
var STATUS=0;
var VISIBLE=1;
var a=1;
var img=new Image();
img.src="bg.jpg";
var r=Math.random()*41+10;
var x=Math.random()*291;
x+r>300 && (x=300-r);
x-r<0 && (x=r);
var y=-r;
setInterval(function(){
if(y+r>400){
y=400-r;
STATUS=1;
}else if(y-r<0){
y=r;
STATUS=0;
}
if(a<0){
VISIBLE=0;
a=0;
}else if(a>1){
a=1;
VISIBLE=1;
}
ctx.drawImage(img,0,0,300,400);
ctx.fillStyle="rgba(250,0,0,"+a+")";
ctx.beginPath();
ctx.arc(x,y,r,0,Math.PI*2);
ctx.fill();
if(STATUS==0){
y+=3;
}else if(STATUS==1){
y=y-3;
}
if(VISIBLE==1){
a=a-0.01;
}else if(VISIBLE==0){
a+=0.01;
}
},50);
</script>
</body>
相关文章推荐
- Canvas实现直线与圆形的物理运动效果
- 多个圆形自上向下运动效果
- 用canvas绘制一个圆形,实现绕着一个中心运动
- C#实现一个图形的动态效果(简单矩形不断向下运动的实现简单步骤)
- HTML5效果:Canvas 实现圆形进度条并显示数字百分比
- 使用particles.js实现知乎首页Canvas粒子效果,多边形,圆形粒子
- 基于canvas实现物理运动效果与动画效果(一)
- Canvas编程练习:20几行js代码实现雷达扫描动画效果
- DataGrid与Canvas的遮罩效果(实现圆形边角)
- Paint&Canvas实现一个点(图片)在圆形(轨迹)上运动
- 三种方式实现自定义圆形页面加载中效果的进度条
- 用js实现缓冲运动效果
- 用javascript实现仿163的js广告向下挤压页面的效果
- 通过AJAX调用页面后台代码方法实现省级三级联动效果 (简单练习)前台
- 用js实现同一页面多个不同运动效果
- 三种方式实现自定义圆形页面加载中效果的进度条
- CSS+Canvas实现图片灰度效果,兼容所有浏览器
- HTML5 实现小车动画效果(Canvas/CSS3/JQuery)
- HTML5 实现小车动画效果(Canvas/CSS3/JQuery)
- jQuery实现的瀑布流效果, 向下滚动即时加载内容