|
|

楼主 |
发表于 2022-3-9 09:55
|
显示全部楼层
本帖最后由 马黑黑 于 2022-3-9 09:57 编辑
一楼完整代码:
- <div style="text-align:center">
- <canvas id="canvas" width="400" height="300"></canvas><br><br>
- <input id="del" type="button" value="删除圆形" />
- <input id="marq" type="button" value="停止运动" />
- </div>
- <script>
- var flag = 0; //删除操作标识
- var cvs = document.getElementById('canvas'); //画布句柄
- var cvt = cvs.getContext('2d'); //画布句柄
- var rr = 10; // 小球半径
- var dx = cvs.clientWidth/2; //小球水平位置
- var dy = 20; //小球垂直起始位置
- var speed = 1; //小球行进速度
- draw(); //绘制左上角图案
- var start = setInterval(marq,10); //小球运动
- //按钮1单击事件
- document.getElementById('del').onclick = function(){
- if(flag == 0) {
- cvt.clearRect(10,10,100,100); //擦除圆
- this.value = "删除矩形";
- flag = 1;
- } else if(flag == 1) {
- cvt.clearRect(9,9,102,102); //擦除矩形
- this.value = "恢复图形";
- flag = 2;
- } else {
- this.value = "删除圆形";
- draw(); //重绘图案
- flag = 0;
- }
- }
- //按钮2单击事件
- document.getElementById('marq').onclick = function(){
- if(this.value == '继续运动'){
- start = setInterval(marq, 10); // 令小球运动
- this.value = '停止运动';
- } else {
- clearInterval(start); //令小球停止运动
- this.value = '继续运动';
- }
- }
- //绘制图形函数
- function draw(){
- cvs.style.cssText = 'background: #000';
- cvt.strokeStyle = 'red';
- cvt.strokeRect(10,10,100,100);
- cvt.fillStyle = 'olive';
- cvt.arc(60, 60, 50, 0, 2*Math.PI);
- cvt.fill();
- }
- //小球运动函数
- function marq(){
- cvt.beginPath();
- cvt.clearRect(dx-rr, dy-rr, rr*2, rr*2);
- cvt.fillStyle = "silver";
- dy = dy + speed;
- if(dy >= cvs.clientHeight - rr*2 || dy <= 20) speed = -speed;
- cvt.arc(dx, dy, rr, 0, 2*Math.PI);
- cvt.fill();
- }
- </script>
复制代码
|
评分
-
| 参与人数 1 | 威望 +50 |
金钱 +100 |
经验 +50 |
收起
理由
|
红影
| + 50 |
+ 100 |
+ 50 |
赞一个! |
查看全部评分
|