zoukankan      html  css  js  c++  java
  • 封装运动框架单个属性

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>封装运动框架的单个属性</title>
    <style>
    div{
    100px;
    height: 100px;
    font-weight:bold;">pink;
    position: absolute;
    left: 10px;
    top: 50px;

    }
    </style>
    </head>
    <body>
    <button id="btn200">200</button>
    <button id="btn400">400</button>
    <div id="demo"></div>
    </body>
    </html>
    <script>
    var btn200 = document.getElementById("btn200");
    var btn400 = document.getElementById("btn400");
    var demo = document.getElementById("demo");
    btn200.onclick = function(){
    animate(demo,"width",400);
    }
    btn400.onclick = function(){
    animate(demo,"left",100);
    }
    function animate(obj,attr,target){
    clearInterval(obj.timer);
    obj.timer = setInterval(function() {
    //先算出步长 盒子的动画原理 盒子本身的样式+步长
    //我们怎么知道当前的样式
    //得到当前样式后,用(target - current )/10 计算出步长
    //得到当前样式 parseInt目的是为了去掉PX
    var current = parseInt(getStyle(obj,attr));
    var step = (target - current) / 10;
    step = step > 0? Math.ceil(step):Math.floor(step); //取整函数

    //开始做动画
    obj.style[attr] = current + step + "px";
    if(target == current){
    clearInterval(obj.timer);
    }

    },30)
    }


    //封装返回当前样式函数
    function getStyle(obj,attr){
    if(obj.currentStyle){
    return obj.currentStyle[attr];
    }else{
    return window.getComputedStyle(obj,null)[attr];
    }
    }
    </script>
  • 相关阅读:
    neo4j命令
    prometheus使用四(alertmanager&grafana告警及服务发现)
    prometheus使用三(自定义监控指标实现)
    prometheus使用二(export与grafana接入)
    prometheus使用一
    一次修改域名解析引发的问题
    微信小程序支付,看这一篇就够了
    常用命令
    常见报错与问题注意
    redis迁移复制数据,主从关系建立实践
  • 原文地址:https://www.cnblogs.com/zhaocong/p/7271430.html
Copyright © 2011-2022 走看看