博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript 视差滚动
阅读量:4538 次
发布时间:2019-06-08

本文共 1083 字,大约阅读时间需要 3 分钟。

今天看到有人推荐 有js视差滚动效果的网站,其实视差滚动原理非常简单,无非把不同dom对象设置不同的移动速度,这样同时移动时可以非常明显的纵深感。

以我的上篇练习  为基础稍微添加一段代码就可以实现一个视差滚动。

直接上代码(html,全)  

View Code
   

新加代码段1

var data=[];......var obj = {	e:li[i],	l:parseInt(s.left),	t:parseInt(s.top),	s:parseInt(s.zIndex)}data.push(obj);

申请数组data,遍历时保存li的left top 和 index,动画时用到

新加代码段2

ul.onmousemove = function (e){
for(var j in data){
var step = data[j].s * 2; var numx = parseInt( ( ul.offsetWidth/2 - e.clientX) * step / ul.offsetWidth ); var numy = parseInt( ( ul.offsetHeight/2 - e.clientY) * step / ul.offsetHeight ); data[j].e.style.left = data[j].l - numx + 'px'; data[j].e.style.top = data[j].t - numy + 'px'; //console.log(numx); } }

这里关键地就是numx和numy;涉及到一个数学算法,不过不难理解,就是一个一元二次方程;num的大小就是鼠标相对页面的大小的固定比例。

 

ps:好像加不了demo页面 不知道大家有没有知道怎么加的。

转载于:https://www.cnblogs.com/haner/archive/2011/12/07/2279700.html

你可能感兴趣的文章
算法复习——数位dp(不要62HUD2089)
查看>>
Spark2.1.0——运行环境准备
查看>>
noip模拟赛 寻宝之后
查看>>
ZOJ2833*(并查集)
查看>>
外连接简要总结
查看>>
第一次作业-准备篇
查看>>
【C++】继承时构造函数和析构函数
查看>>
opencv源代码之中的一个:cvboost.cpp
查看>>
swift
查看>>
pycharm 快捷键
查看>>
Linux常用命令
查看>>
.net中的设计模式---单例模式
查看>>
安装程序工具 (Installutil.exe)22
查看>>
如何简单解释 MapReduce算法
查看>>
从 0 到 1 实现 React 系列 —— 1.JSX 和 Virtual DOM
查看>>
面向接口编程详解(二)——编程实例
查看>>
解决java.lang.NoClassDefFoundError: org/apache/log4j/Level
查看>>
端口号
查看>>
mysql for macOS安装
查看>>
jquery与checkbox的checked属性的问题
查看>>