运动缓冲效果的封装函数示例代码

之前经常写运动函数,要写好多好多,后来想办法封装起来。(运动缓冲)。本文主要和大家介绍了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);

登录后复制

就这样。

相关推荐:

HTML5实现的Loading缓冲效果

javascript 缓冲效果 实现代码_javascript技巧

JS+CSS实现带有碰撞缓冲效果的竖向导航条代码_javascript技巧

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

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

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

(0)
上一篇 2025年3月8日 17:44:30
下一篇 2025年2月26日 08:05:07

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

相关推荐

  • 原生JS实现Tab选项卡各种效果

    前一段时间我写了几篇关于css属性的理解和用法方面的文章,今天就不分享css属性了,给大家分享一个我们在实际工作中用到比较多的一个效果——tab选项卡效果。首先,我们先来看看tab选项卡效果是什么样子,以qq新闻为例,有如下效果: 当鼠标滑…

    2025年3月8日 编程技术
    200
  • 数组函数有哪些用处

    很多时候你可能很纠结,你应该使用reduce更多或者你不应该使用filter,更应该使用map;或者是for,为什么不使用forEach?是不是太纠结了。 事实上呢?数组和数组的迭代函数对于初学者来说都会感到困惑,所以我将试着为每个简化问题…

    编程技术 2025年3月8日
    200
  • Generator函数详细解析

    generator 函数是 es6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。这篇文章给大家介绍es6 generator函数的相关知识,希望能帮助到大家。 ECMAScript 6 (简称 ES6 )作为下一代 JavaSc…

    编程技术 2025年3月8日
    200
  • JS实现运动缓冲效果的封装函数分享

    本文主要和大家介绍了js实现运动缓冲效果的封装函数,涉及javascript时间函数与数值运算相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。 之前经常写运动函数,要写好多好多,后来想办法封装起来。(运动缓冲)。 /*  物体多属性同…

    编程技术 2025年3月8日
    200
  • 原生js实现简单封装方法

    本文主要和大家分享原生js实现简单封装方法,本文和大家分享的代码希望能帮助到大家。 const ListenerFN = function ({ target, event, FN, option = {} }) {  if (target…

    编程技术 2025年3月8日
    200
  • 前端常用方法函数实例详解

    本文主要和大家分享前端编写过程常用方法函数实例详解,希望能帮助到大家。 1. push() 方法 定义和用法 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。 语法 arrayObject.push(newelement…

    编程技术 2025年3月8日
    200
  • JS中的常用函数汇总

    这次给大家带来js中的常用函数汇总,使用js中的常用函数的注意事项有哪些,下面就是实战案例,一起来看一下。 //数字每隔三位加’,’,如1000变为’1,000’function numFormat( params ) {    var v…

    编程技术 2025年3月8日
    200
  • 基础的JavaScript知识总结(六)函数、初始作用域(下)

    这次给大家带来基础的javascript知识总结,总共有十一个知识点,基础的javascript知识总结(六)函数、初始作用域(下)下面就是实战案例,一起来看一下。 作用域初探 作用域定义: 变量(变量作用于又称上下文)和函数生效(能被访问…

    编程技术 2025年3月8日
    200
  • 如何在移动端做出1px边框的效果

    这次给大家带来如何在移动端做出1px边框的效果,在移动端做出1px边框的效果的注意事项有哪些,下面就是实战案例,一起来看一下。 背景 在 vue.js 下使用 stylus 实现 1 像素 border 边框,如果使用 css 样式属性 b…

    编程技术 2025年3月8日
    200
  • 用JS做的点击复制效果

    这次给大家带来用js做的点击复制效果,用js做的点击复制效果注意事项有哪些,下面就是实战案例,一起来看一下。 原理:模拟通过全选表单内的textarea数据调用浏览器Copy命令实现复制 示例 nbsp;html>         复…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论