JS实现运动缓冲效果的封装函数分享

本文主要和大家介绍了js实现运动缓冲效果封装函数,涉及javascript时间函数与数值运算相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。

之前经常写运动函数,要写好多好多,后来想办法封装起来。(运动缓冲)。

/*  物体多属性同时运动的函数  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实现缓冲运动框架的实例

以上就是JS实现运动缓冲效果的封装函数分享的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2785717.html

(0)
上一篇 2025年3月8日 17:32:00
下一篇 2025年2月28日 21:12:51

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 怎样监听angularJs列表数据是否渲染完毕

    这次给大家带来怎样监听angularjs列表数据是否渲染完毕,监听angularjs列表数据是否渲染完毕注意事项有哪些,下面就是实战案例,一起来看一下。  前端在做数据渲染的时候经常会遇到在数据渲染完毕后执行某些操作,这几天就一直遇到在列表…

    编程技术 2025年3月8日
    200
  • JS实现checkBox的单选效果实例代码

    本文主要和大家分享JS实现checkBoxd的单选效果,简单说就是遍历所有的checkBox复选框,如果有一个已经选中,就将其他的checkBox框置为未选中,以此实现单选的效果,我看到很多博客也写了类似的功能,但大部分都是基于jquery…

    编程技术 2025年3月8日
    200
  • js跨域请求服务实例分析

    本文主要和大家分享js跨域请求服务实例分析,希望能帮助到大家。   function getAreaPosionsSucess(data){           alert(“请求成功”);        }       function …

    编程技术 2025年3月8日
    200
  • JS中正则表达式的理解

    1. 什么是正则表达式,正则: 规则,让计算机能够读懂我们写的规则,本质上来说,正则表达式就是一组规则的字符串, a 2 如何去学习正则表达式 d  表示的是数字 D  表示非数字 s  表示空格 1) 用这些特定的字符去写一套规则(我想要…

    编程技术 2025年3月8日
    200
  • JS中的事件入门讲解

    1 事件 事件可以理解为用户和浏览器的交互行为 2 事件函数绑定   事件函数: 当事件发生了,用于处理该事件的具体应对方案就是事件处理函数   表现出来就是一些代码块   例如: 当鼠标点击(事件)— 做什么操作?就由事件处理函数来完成 …

    编程技术 2025年3月8日
    200
  • JS原生对象实例讲解

    1、什么是对象?  在程序,某个对象的属性(变量–存储数据)  某个对象的方法(函数)对象的属性,对象的方法 2、字面量?    用于表示固定值的符号  var a = 3 字面量3  — 3    注意:字面量就是这个值本身 …

    编程技术 2025年3月8日
    200
  • Js字符串中提取数字

    本文主要和大家分享js字符串中提取数字实例,希望能帮助到大家。 一 parseInt()方法:          首先想到的是js提供的parseInt方法,例子:          var str =”4500元”; var num = …

    编程技术 2025年3月8日
    200
  • JS中setInterval和setTimeout实例分析

    本文主要和大家分享JS中setInterval和setTimeout实例分析,希望能帮助到大家。 1 setInterval   是一个函数,功能: 可以重复去执行某段代码块(函数)  setInterval(函数,时间间隔), 隔多少时间…

    编程技术 2025年3月8日
    200
  • mui js返回刷新页面的方法实例代码

    本文主要和大家分享mui j 返回刷新页面的方法实例代码,希望能帮助到大家。 mui js 返回刷新页面方法 目前只知道以下几个 mui.plusReady(function() {var primaryBack = mui.back;  …

    编程技术 2025年3月8日
    200
  • js数组去重和排序详解

    本文主要和大家分享js数组去重和排序详解,希望能帮助到大家。 1、用 indexof  查看是否存在,不存在没添加 var arr = [‘aa’,’aa’,’aa’,’bb’,’bb’,3,5,8,9,4,5,4];function un…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论