js实现页面各种运动效果总结
2019-06-21 08:10
239 查看
匀速运动:
解决速度问题 : 速度在函数体内部完成
var speed = target-obj.offsetLeft > 0 ? 正值 : 负值
缓冲运动:
解决速度问题 让运动的物体达到目标值
var speed = (target - obj.offsetLeft)/10; //速度随着时间变化而变化 speed = speed > 0 ? Math.ceil( speed ) //对速度进行取值 Math.floor( speed );
多物体运动:
让每一个运动的物体拥有自己的定时器 定时器独立
把定时器作为对象的属性 让定时器独立
链式运动
上一个动作结束 进入到下一个动作
解决 : 在运动函数上加一个参数,参数代表回调函数
完美运动:
//obj 操作的元素
//json 参数为 要操作的属性和目标值 键–属性 值–目标值
//callback 回调函数
var flag;//开关变量 当值为true时,表示 所有的动作都执行完毕 ,可以关掉定时器 ,也可以进入下一个动作
function startMove(obj,json,callback){//attr表示要操作的属性 clearInterval(obj.timer); obj.timer = setInterval(function(){ flag = true; var current = 0; for(var attr in json){ if( attr =="opacity" ){//操作透明度 //获取透明度的样式值 current =parseFloat( getStyle(obj,attr) )*100; }else{ current =parseInt( getStyle(obj,attr) ) ;//接收当前元素的样式值 } var speed = (json[attr] - current)/10; speed = speed>0?Math.ceil(speed) :Math.floor(speed); if( current != json[attr] ){//动作完成后的条件 flag = false;//当目标值和当前的样式值 不相等时 , 将开关变量值关闭 false } //定时器开启时 不停的改变元素的样式 if( attr == "opacity" ){ obj.style.opacity = (current+speed)/100; }else{ obj.style[attr] = current + speed + "px"; } } //循环结束后判断flag的值,当值为true时,表示 所有的动作都执行完毕 ,可以关掉定时器 ,也可以进入下一个动作 if( flag ){ clearInterval(obj.timer); //上一个动作完成后 就开启下一个动作的执行 调用callback //判断 callback是否存在 存在就调用 if( callback ){ callback(); } } },30) } //获取样式值函数 function getStyle(obj,attr){ if( window.getComputedStyle ){ return window.getComputedStyle( obj,false )[attr]; }else{ return obj.currentStyle[attr]; } }
相关文章推荐
- 用js实现同一页面多个不同运动效果2
- 用js实现同一页面多个不同运动效果
- js实现同一页面多个不同运动效果的方法
- js实现同一页面多个运动效果的方法
- 用js实现同一页面多个不同运动效果
- 用js实现同一页面多个运动效果
- js实现的定时关闭页面或定时提醒效果代码
- 使用js实现滑动页面效果,很漂亮
- 页面滚动显示或隐藏元素Headroom.js插件帮助你实现滚动效果
- JS弹出模式提示窗体,实现页面其他地方不可编辑效果
- js实现页面自动刷新方法总结(转)
- android ListView各种效果实现总结
- velocity.js实现页面滚动切换效果
- 刷新页面实现方式总结(HTML,ASP,JS)
- 用JS和CSS实现页面的向上向下滚动效果
- JS页面刷新实现方法总结
- js实现同一页面可多次调用的图片幻灯切换效果
- 如何使用JS等各种方法实现刷新当前页面
- JS实现jasperreport交叉报表输出页面居中效果
- js效果实现页面的局部打印