最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JS实现运动缓冲效果的封装函数示例

来源:动视网 责编:小采 时间:2020-11-27 22:19:27
文档

JS实现运动缓冲效果的封装函数示例

JS实现运动缓冲效果的封装函数示例:本文实例讲述了JS实现运动缓冲效果的封装函数。分享给大家供大家参考,具体如下: 之前经常写运动函数,要写好多好多,后来想办法封装起来。(运动缓冲)。 /* 物体多属性同时运动的函数 obj:运动的物体 oTarget:对象,属性名为运动的样式名,属性值为样式
推荐度:
导读JS实现运动缓冲效果的封装函数示例:本文实例讲述了JS实现运动缓冲效果的封装函数。分享给大家供大家参考,具体如下: 之前经常写运动函数,要写好多好多,后来想办法封装起来。(运动缓冲)。 /* 物体多属性同时运动的函数 obj:运动的物体 oTarget:对象,属性名为运动的样式名,属性值为样式


本文实例讲述了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);

就这样。

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript运动效果与技巧汇总》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

文档

JS实现运动缓冲效果的封装函数示例

JS实现运动缓冲效果的封装函数示例:本文实例讲述了JS实现运动缓冲效果的封装函数。分享给大家供大家参考,具体如下: 之前经常写运动函数,要写好多好多,后来想办法封装起来。(运动缓冲)。 /* 物体多属性同时运动的函数 obj:运动的物体 oTarget:对象,属性名为运动的样式名,属性值为样式
推荐度:
标签: 实现 js 实例
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top