zoukankan      html  css  js  c++  java
  • 原生JS代码封装(输入属性、属性值、动画时长,获得动画效果)

    function animate(ele, props, callback) { //属性,属性值,动画时长
        
        stopNow();
        
        ele.timerlist = [];
        ele.cbk = callback;
        
        for (let attr in props) {
            let start = parseFloat(getStyle(ele)[attr]);
            let degree = 0;
            let distance = props[attr] - start;
            let t = setInterval(function() {
                degree += 3;
                // console.log(start + Math.sin(Math.PI / 180 * degree) * distance);
                if(attr == "opacity") {
                    ele.style[attr] = start + Math.sin(Math.PI / 180 * degree) * distance;
                } else {
                    ele.style[attr] = start + Math.sin(Math.PI / 180 * degree) * distance + "px";
                }
                if (degree == 90) {
                    clearInterval(t)
                    var index = ele.timerlist.indexOf(t);
                    ele.timerlist.splice(index,1);
                    ele.timerlist.length == 0 ? (ele.cbk ? ele.cbk() : "" ) : "";
                }
            }, 30);
            ele.timerlist.push(t);
        }

        function getStyle(ele) {
            if (window.VBArray) {
                return ele.currentStyle;
            } else {
                return getComputedStyle(ele);
            }
        }
        
        function stopNow(){
            if(!ele.timerlist) return;
            var t = null;
            while(t=ele.timerlist.pop()) {
                clearInterval(t);
            }
        }
    }
  • 相关阅读:
    索引的结构和性能的关系
    TP5的多图上传
    TP5页面更改数字进行AJAX排序
    安装Git版本控制系统 以及Git Bash的基础命令
    tp5 前台 点击显示一个弹窗
    Tp5 (轮回) 多个富文本应用
    Tp5 (轮回) AJAX请求写搜索页面
    安装 SVN 服务器
    Tp5(轮回)------单图上传 运用AJAX 请求
    TP5中(通过一个表去取另一个表的相对应的名称)
  • 原文地址:https://www.cnblogs.com/sunyang-001/p/10813056.html
Copyright © 2011-2022 走看看