HTML5技术

用 canvas 做个好玩的网站背景 - WAxes(2)

字号+ 作者:H5之家 来源:CnBlogs 2015-11-13 10:25 我要评论( )

warea = {x: null , y: null }; var animateHeader = document.getElementById("animateHeader" );animateHeader.onmousemove = function (e) {e = e || window.event;warea.x = e.clientX + 10 ;warea.y = e.clien

warea = {x: null, y: null}; var animateHeader = document.getElementById("animateHeader"); animateHeader.onmousemove = function (e) { e = e || window.event; warea.x = e.clientX + 10; warea.y = e.clientY; };

  保存了鼠标位置后,在每次动画循环的时候,把鼠标位置也当成一个粒子对象塞进数组进行比较:

animate() { ctx.clearRect(0, 0, canvas.width, canvas.height); bubDrawLine([warea].concat(dots)); RAF(animate); }

  而粒子往鼠标方向运动的代码,其实就这么一小截:

(ndot === warea && dis < 20000) { dot.x -= xc * 0.01; dot.y -= yc * 0.01; }

  计算鼠标与粒子的距离,当鼠标与粒子之间的距离小于一定的时候,把粒子的位置更新为 “当前位置 - 鼠标粒子距离 * 0.01”即可。然后就会形成粒子往鼠标位置移动的效果了。

  整个效果就这样完成了,很简单,也很有意思,有兴趣的可以去研究一下发掘一些更好玩的效果。

  贴上这个demo的github地址:https://github.com/whxaxes/canvas-test/blob/gh-pages/src/Funny-demo/nets.html   

  这个demo是很早之前写的,跟上面贴出来的代码会有点出入,但是原理是一样的。懂了原理,就可以自己去实现一个了。

  

  如果觉得demo不错,就在github给个star呗,当然也欢迎fork

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • canvas知识点 - H.U.C-王子

    canvas知识点 - H.U.C-王子

    2017-04-16 10:02

  • canvas实现黑客帝国矩形阵 - 风雨后见彩虹

    canvas实现黑客帝国矩形阵 - 风雨后见彩虹

    2017-03-30 09:00

  • canvas画直角坐标系 - shbwh-tswq

    canvas画直角坐标系 - shbwh-tswq

    2017-03-18 10:02

  • 列表总结Canvas和SVG的区别 - 妙音天女

    列表总结Canvas和SVG的区别 - 妙音天女

    2017-03-17 10:00

网友点评