为了账号安全,请及时绑定邮箱和手机立即绑定
当把时间设置为20ms的时候会越来越快很可怕,但是50ms又不会了,是不是遍历那个数组的时间已经超过了20ms
貌似用setTimeout比较好,
var test = function () {
setTimeout(function () {
test ()
}, 1000)
}
test ()
好像setInterval每次都会重新定义一个计时器,比较耗资源
倒计时 超过99小时的 有人写出来吗
这个程序还有一点小小的bug,如果你将网页最小化或者切换到别的标签页时,再切换回来会出现离开这段时间内的小球同时出现。我的解决办法就是使用windows.onfocus(网页获得焦点)和windows.onblur(网页失去焦点),两个函数来监听事件,当网页获得焦点时直接刷新页面就解决了,但个人认为能将动画中断最好,继续学习相关知识之后回来在修改把,还有就是当页面大小改变时并不能像静态网页一样实时刷新效果,所以我用windows.onresize监听出现页面变化之后刷新网页。
帅气的开场,这个我喜欢,有了高涨的学习欲了
按照老师做的,超出最大值时删除的小球是新生成的而不是即将要离开屏幕的小球。为了不会造成在数字炸裂时只生成一两个小球的尴尬情况,我修改成了以下代码:
var MAX_BALLS = 300;
while (balls.length > cnt) {
balls.pop();
}
if (cnt > MAX_BALLS) {
var temp = [];
for (var i = cnt - MAX_BALLS; i < cnt; i++) {
temp.push(balls[i]);
}
balls = temp;
}
老师讲的真好!赞一个
canvas绘图详解课程的内容与《HTML5秘籍》所涉及的内容差不多
卧槽,帅的一批
跟着做完了 有需要的同学可以看下 参照评论给的回答 修改了一下 实现失焦一段时间不会导致小球堆在一起。没有修改的可以试着把窗口缩下来一段时间就会发现这个问题。

这是 github 修改的代码在readme里 有兴趣可以看看
https://github.com/luomaochen/colorball-timeclock
好强大啊,马上学
发现就算用来Math.min(300,cnt)也无济于事,把页面刷新一下,马上缩减页面,过一会后打开还是会有堆积,只不过堆积的小球数不会超过300个而已;在画布内的小球数快要达到300时,会减少小球绘制数量,比如balls.length==298 那么新绘制的小球数则为2,按照你们的效果来说就是,新弹出来的小球只有两个。
最后一个案例,不是填充之后不是colsePath会帮你自动闭合路径,而是因为老师这里填充的颜色与边框相同,且边框的宽度较小,所以看起来和自动闭合没有区别。锯齿的出现是因为边框宽度较大而造成的,因为填充颜色时并不会填充到边框,导致首位有一部分边框‘出头’了。
厉害了,学习到了一些
课程须知
1.要对HTML+CSS相关标签有所掌握;2.对网页布局知识有简单的了解;3.掌握一定的JS基础知识
老师告诉你能学到什么?
通过学习Cancas倒计时效果的基础知识:比如球形的绘制,动画的基础原理,让Canvas帮助我们制作出绚丽的效果,力图每一个课程除了介绍知识,还能帮助大家使用Canvas制作出属于自己的动画和游戏作品。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消