美文网首页
原生js封装元素运动函数

原生js封装元素运动函数

作者: 刘翾 | 来源:发表于2017-11-08 21:04 被阅读53次

首先看看演示效果


例子

代码

函数参数obj为当前想要变动的元素, changeData为想要变动的种类, 例如, func为元素动作结束后想要处理的函数
例如向上面那个演示, **注意: ** opacity要乘以100, 原因见如下代码

var div = document.getElementsByClassName('demo')[0];
    startMove(div, {width:200 ,  height:200, left:100, top:100, opacity: 50}, function(){});
/*
* 运动函数模型
 */

function startMove(obj, changeData, func) {
    clearInterval(obj.timer);
    var iCurValue = 0;
    var iSpeed = 0;
    var bStop;
    
    obj.timer = window.setInterval(function () {
         bStop = true;//判断当前所有动作是否全部执行完毕
        for(var name in changeData) {
            console.log(name, changeData[name]);
            if(name === 'opacity') {//对透明度进行处理时注意要扩大倍数, 否则容易造成bug
                iCurValue = parseFloat(getStyle(obj, name)) * 100;
            }else {
                iCurValue = parseInt(getStyle(obj, name));
            }
            iSpeed = (changeData[name] - iCurValue) / 7;//缓冲运动效果
            if(iSpeed > 0) {
                iSpeed = Math.ceil(iSpeed);
            }else{
                iSpeed = Math.floor(iSpeed);
            }
            if(name === 'opacity') {
                obj.style.opacity = (iCurValue + iSpeed) / 100;         
            }else{
                obj.style[name] = iCurValue + iSpeed + 'px';
            }
            if(iCurValue !== changeData[name]) {
                bStop = false;
            }
        }
        if(bStop) {
            //整个动作执行完毕
            clearInterval(obj.timer);
            func();//当全部动作执行完毕之后, 执行回调函数.
        }
    }, 30);
}

相关文章

  • 原生js封装元素运动函数

    首先看看演示效果 代码 函数参数obj为当前想要变动的元素, changeData为想要变动的种类, 例如, fu...

  • 原生JS封装查找元素节点的方法

    原生JS封装查找父元素节点的方法 原生JS封装查找兄弟元素节点的方法 插入子节点方法 12 2 divsiv...

  • 01-JQuery入口函数

    JQuery入口函数 JS原生入口函数特点原生JS会等到DOM元素加载完毕,并且图片也加载完毕才会执行原生的JS如...

  • 你不知道的JavaScript(二)

    第三章 原生函数 JS有很多原生函数,为基本的数据类型值提供了封装对象,String,Number,Boolean...

  • js原生cookie封装函数

    Cookie是什么(还有session)? cookie 和 session 都是用来储存一些 浏览器用户的信息,...

  • ## JQuery选择器

    一、概要 使用jQuery 选择器选取元素,并封装为jQuery对象在JS原生DOM中,我们想要对DOM元素进行操...

  • jquery与js加载顺序区别

    1.通过原生的JS入口函数可以拿到DOM元素,也可以拿到DOM元素的宽高。通过JQuery入口函数可以拿到DOM元...

  • js 原生ajax的封装

    概念 ajax是前端常用技术,今天用原生js封装了一个ajax函数,类似于jquery库的$.ajax()函数,大...

  • 中卷(1.3)

    内容大纲:js 为基本数据类型值提供了封装对象,称为原生函数(如 String、Number、Boolean 等)...

  • 实现一个简单的jQuery

    jQuery说到底是一个函数对象,一个通过原生js实现了某些功能的函数,被封装成了一个js对象。jQuery对象是...

网友评论

      本文标题:原生js封装元素运动函数

      本文链接:https://www.haomeiwen.com/subject/qvfumxtx.html