封装一个简单的move函数
Posted cz0017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了封装一个简单的move函数相关的知识,希望对你有一定的参考价值。
function getStyle(obj, name) { return obj.currentStyle ? obj.currentStyle[name] : getComputedStyle(obj)[name]; }//获取元素的非行间样式 function move(obj, json, options) { clearInterval(obj.timer); options.time=options.time||500;//设置默认时间 options.easeing=options.easeing||‘ease-out‘;//设置默认运动形式 var start={}; var target={}; for (var name in json){ start[name] = parseFloat(getStyle(obj, name));//将运动前的属性值存到一个start里面 target[name]=json[name]-start[name];//将需要运动的属性值存到target里面 }; var count = parseInt(options.time / 10);//设置步长 var n = 0; obj.timer = setInterval(function () { n++; for (var name in json){ switch (options.easeing) { case ‘linear‘: var a=n/count; var current=start[name]+target[name]*a;//匀速 break; case ‘ease-in‘: var a=n/count; var current=start[name]+target[name]*(a*a*a);//匀加速 break; case ‘ease-out‘: var a=1-n/count; var current=start[name]+target[name]*(1-a*a*a);//匀减速 break; } if (name===‘opacity‘){ obj.style[name]=current; }else { obj.style[name]=current+‘px‘; }; }; if (n === count) { clearInterval(obj.timer); options.fn && options.fn(); } }, 10) };
以上是关于封装一个简单的move函数的主要内容,如果未能解决你的问题,请参考以下文章
使用 std::thread 函数 C++11 将指针作为参数传递