随着鼠标位移的动画效果实现

1.纯JS实现

<script language="javascript" type="text/javascript">
document.onmousemove=function(evt){
    evt=evt || window.event;
    showP(evt.clientX,evt.clientY);   
}
var middleX=650,middleY=350//中心坐标
function showP(x,y)
{
    xP=(x-500)/500;
    yP=(y-250)/250;   
    document.getElementById("lay1").style.left=(350+xP*20)+"px";// lay1的左右移动区间是正负20像素
    document.getElementById("lay1").style.top=(160+yP*15)+"px";// lay1的上下移动区间是正负15像素

    document.getElementById("lay2").style.left=(300+xP*40)+"px";// lay2的左右移动区间是正负40像素
    document.getElementById("lay2").style.top=(130+yP*27)+"px";// lay2的上下移动区间是正负27像素

    document.getElementById("lay3").style.left=(250+xP*60)+"px";// lay3的左右移动区间是正负60像素
    document.getElementById("lay3").style.top=(110+yP*35)+"px";// lay3的上下移动区间是正负35像素
}
</script>

[demo]
这种方式需要已知宽度和高度。从而得出这片区域的中心点。
设可以移动区域为m,所有最大可以位移的值为m,意味着,当鼠标在离中心点最远的地方的时候,刚好对应的位移是m。设中心点为(x,y),鼠标所在的点为(xP,yP),通过xP-x,yP-y即为最远的点。所以上面有

xP=(x-500)/500;
yP=(y-250)/250;  

通过除以中心点的值得到百分比。当百分比为100%的时候,即是最远的点。而后面的(350+xP*20)中的350是本身这个DIV的left

2.JS库 - parallax.js


参考文章:
[Javascript的3D视觉-TGideas-腾讯游戏官方设计团队]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 高级钳工应知鉴定题库(858题) ***单选题*** 1. 000003难易程度:较难知识范围:相关4 01答案:...
    开源时代阅读 5,941评论 1 9
  • 看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印象,因...
    DCbryant阅读 1,895评论 0 4
  • 网格是对模型、点、边、面编辑的操作。 除了 N-Gons 和 重置轴心 会从网格菜单打开,其他的操作一般不会从菜单...
    刘板栗阅读 7,685评论 1 16
  • 单位、家每天重复着两点一线的生活状态,好像整个世界就是在这样一成不变。生活中其实并不缺少美,只是你没有发现美,今天...
    唯其时物阅读 354评论 0 2
  • 文| 似舞 我是个看书很快的人,这是一本很花时间看的书。很矛盾地压着自己的心,边查阅资料,边慢慢细致地读了第一遍,...
    陈欢欢阅读 5,129评论 71 240