您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

JS运动缓冲效果的封装函数如何使用

2025/4/2 12:26:38发布33次查看
这次给大家带来js运动缓冲效果的封装函数如何使用,使用js运动缓冲效果的封装函数的注意事项有哪些,下面就是实战案例,一起来看一下。
之前经常写运动函数,要写好多好多,后来想办法封装起来。(运动缓冲)。
/*   物体多属性同时运动的函数   obj:运动的物体   otarget:对象,属性名为运动的样式名,属性值为样式运动的终点值   ratio:速度的系数 */ function buffermove(obj, otarget, fn,ratio = 8) {   clearinterval(obj.itimer);   obj.itimer = setinterval(function () {     // 此处设定开关bbtn,假设所有的属性均已运动完毕true     var bbtn = true;     for(var sattr in otarget){       // 获取当前值,此处兼容透明度的变化       if(sattr === 'opacity') {         var icur = parsefloat(getstyle(obj, sattr) * 100);       } else {         var icur = parseint(getstyle(obj, sattr));       }       // 计算速度,此处可判定方向,如向左或向右,先透明后出现或先出现后透明等       var ispeed = (otarget[sattr] - icur) / ratio;       ispeed = ispeed > 0 ? math.ceil(ispeed) : math.floor(ispeed);       // 计算下一次的值       var inext = icur + ispeed;       // 赋值给对应样式       if(sattr ==='opacity') {         obj.style.opacity = inext / 100;         obj.style.filter = 'alpha(opacity=' + inext +')';       } else {         obj.style[sattr] = inext + 'px';       }       // 清除定时器,当前的位置和终点值是否相等,相等则说明结束       if(inext !== otarget[sattr]) {         bbtn = false;       }     }     // 如果bbtn的值为true,则说明所有的属性均已运动完毕,回调函数fn()     if(bbtn) {       clearinterval(obj.itimer);       if(fn){         fn();       }     }   }, 50); }
以上封装函数也可以用于单个属性,多样式运动,比如:
buffermove(obj,{left:200,width:400,opacity:80},fn,8);
就这样。
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
webpack如何动态引入文件
微信小程序的圆形进度条怎么做
以上就是js运动缓冲效果的封装函数如何使用的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product