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);
            }
        }
    }
  • 相关阅读:
    换空间后如何导入MYSQL数据库
    从robots文件看网站用的是哪个程序
    DEDEcms二次开发数据表参数
    DEDE常用配置
    织梦CMS站点favicon.ico图标的放置
    dedecms列表页如何让文章列表里面的文章每隔五篇就隔开一段空间
    Dedecms 5.7如何制作网站地图?
    dede上怎么让所有链接在新窗口打开
    dede织梦列表页如何调用全站子栏目
    《DSP using MATLAB》示例Example 8.4
  • 原文地址:https://www.cnblogs.com/sunyang-001/p/10813056.html
Copyright © 2011-2022 走看看