定时器的应用(一)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        #box1{
            width: 100px;
            height: 100px;
            background-image: linear-gradient(to top, #a18cd1 0%, #fbc2eb 100%);
            position: absolute;
            left: 0;
        }
    </style>
    
    <script type="text/javascript">

        window.onload=function(){
            // 获取box1
            var box1=document.getElementById("box1");
            // 获取btn01
            var btn01=document.getElementById("btn01");

            // 定义一个变量,用来保存定时器的标识
            var timer;
            // 点击按钮以后,使box1向右移动(left值增大)
            btn01.onclick=function(){
                // box1.style.left="200px";//点击按钮 向右移动200px

                // 关闭上一个定时器
                clearInterval(timer);

                
                

                // 开启一个定时器,用来执行动画效果
                    timer = setInterval(function(){
                    // 获取box1的原来的left值
                    var oldValue = parseInt(getStyle(box1, "left"));
                    
                    // 在旧值的基础上增加
                    var newValue=oldValue+1;

                    // 判断newValue是否大于800
                    if(newValue>800){
                        newValue=800;
                    }

                    // 将新值设置给box1
                    box1.style.left=newValue+"px";

                    // 当元素移动到800px时,使其停止执行动画
                    if(newValue == 800){
                        // 达到目标,关闭定时器
                        clearInterval(timer);
                    }
                    
                    
                }, 30);
            };
        };

         /* 
               定义一个函数,用来获取指定元素的当前的样式
               参数:
                   obj 要获取样式的元素
                   name 要获取的样式名
           */

            function getStyle(obj, name) {

                if (window.getComputedStyle) {
                    // 正常浏览器的方式,具有getComputedStyle()方法
                    return getComputedStyle(obj, null)[name];
                } else {
                    // IE8的方式,没有getComputedStyle()方法
                    return obj.currentStyle[name];
                }

                // return window.getComputedStyle? getComputedStyle(obj, null)[name]: obj.currentStyle[name];

            }
    </script>
</head>
<body>

    <button id="btn01">点击按钮以后box1向右移动</button>
    <br/><br/>
    <div id="box1"></div>
    <div style="width:0;height:1000px;border-left:1px black solid; position:absolute;left:800px;top:0;"></div>
</body>
</html>

 

 

 

 

posted @ 2021-01-05 12:57  Hhhr  阅读(74)  评论(0编辑  收藏  举报