javascript - 百度招聘页面的背景,那个可跟鼠标移动的星空背景是怎么做的啊
迷茫
迷茫 2017-04-10 16:21:17
[JavaScript讨论组]

http://talent.baidu.com/external/baidu/index.html#/
这是地址,点开以后,那个背景可以根据你鼠标的移动而变化,打开f12,找了半天元素没弄明白,我刚接受前端,对这个东西好奇又无知,希望有大神能解答一下。谢谢。

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
PHP中文网

随便浏览了一下百度的源码(那个在homeView.js里的),大致实现的过程是:

  1. 先看看浏览器支持Canvas不支持,如果支持就创建一个Canvas元素,然后画上几百个点,不支持就创建一个p往里扔几百个img元素,创建的时候根据规则设置了点到观察者的假想距离(影响后面的移动速度计算),并且点有大有小;

  2. 监视mousemove事件,不停地更新一个鼠标位置对象,此对象用于后面的计算;

  3. 搞一个1000/30毫秒周期的计时器,每个周期内计算各点的当前坐标,并重画Canvas或者调整img元素的位置;

  4. 每个点的目标位置通过观察者(鼠标)的坐标计算得出,点在画布上的移动速度用点到观察者的假想距离计算出来,近的点移动快,远的点移动慢,这样有3D层次感;

  5. 每个点的实际位置根据上一帧的实际位置和目标位置还有移动速度计算得出,这个计算结果用于第3步的重画步骤。

迷茫

他们这个是写在canvas里的动画,判断一下鼠标方向再设置动画

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号