JavaScript定时器
更新:HHH   时间:2023-1-7


1.往复运动动画

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>motion</title>
<script type="text/javascript">

window.onload = function(){
    var iLeft = 0;
    var iSpeed = 3;
    var oDiv = document.getElementById('Div1');
    /*clearInterval() 关闭*/
    var timer = setInterval(function(){           
        iLeft += iSpeed;
        oDiv.style.left = iLeft + 'px';

        if(iLeft>700){           /*右侧判断*/
            iSpeed = -3;
        }
        if(iLeft<0){             /*左侧判断*/
            iSpeed = 3;
        }
    },20)  /*setInterval(函数,完成时间)*/
}

</script>

<style type="text/css">

.div1{
    width: 100px;
    height: 100px;
    background-color: yellow;
    margin: 100px 0;
    position: absolute;

}
body{
    margin: 0;
}
</style>

</head>

<body>

<div class="div1" id="Div1"></div>

</body>
</html>

2.无缝滚动

例子:小南子

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>小南子</title>
<script type="text/javascript">

window.onload = function(){
    var oDiv = document.getElementById('slide');   /*获取块元素*/
    var oBtn01 = document.getElementById('btn01');
    var oBtn02 = document.getElementById('btn02');

    var oUl = oDiv.getElementsByTagName('ul')[0];  /*获取的是元素集,取第一个*/
    var iRan = 0;         /*位移初始值*/
    var iSpeed = -2;
    var iNowspeed = 0;   /*临时存储*/
    oUl.innerHTML = oUl.innerHTML+oUl.innerHTML;    /*oUl.innerHTML是全部li,两个相加,相当于图片拼接*/
    function moving(){                              /*移动函数*/
        iRan += iSpeed;                                 /*位移量*/
        if(iRan<-2060){                             /*五个li移出*/
            iRan = 0;                               /*回到初值,速度快,肉眼看不出*/
        }
        if(iRan>0){                                 /*当第一张图片往右,立即拉到第二段图片的第一张*/
            iRan = -2060;
        }
        oUl.style.left = iRan + 'px';               /*position的left*/
    }
    var timer = setInterval(moving,20);             /*定时器*/

    oBtn01.onclick = function(){                     /*点击控制方向*/
        iSpeed = -2;
    }
    oBtn02.onclick = function(){
        iSpeed = 2;
    }
    oDiv.onmouseover = function(){                  /*鼠标移进*/
        iNowspeed = iSpeed;
        iSpeed = 0;                                 /*停止*/
    }
    oDiv.onmouseout = function(){                   /*鼠标移出*/
        iSpeed = iNowspeed;                         /*恢复上次移动*/
    }

}
</script>

<style type="text/css">

*{                                                  /*把li的padding和margin消除*/
    margin: 0;
    padding: 0;
}
.list_con{
    width: 1236px;                                  /*3张图片可视*/
    height: 526px;                                  /*图片高度*/
    overflow: hidden;                               /*隐藏溢出*/
    border: 1px solid #000;                         /*边框*/
    margin: 10px auto 0;                            /*相对body*/
    position: relative;                             /*父级position,relative*/
    background-color: #F0F0F0;                      /*背景色*/
}
.list_con ul{
    width: 3296px;                                  /*8张图片宽度,太小会导致拼接出错*/
    height: 506px;
    list-style: none;                                /*除去li样式*/
    position: absolute;                             /*相对list_con*/
    left: 0;                                        /*初始位置*/
    top: 0;
}
.list_con ul li{
    float: left;                                    /*向左靠齐*/
    width: 392px;                                   /*一张图片宽度*/
    height: 506px; 
    margin: 10px;                                    /*图片间的距离*/
    /*position: absolute;*/
}
.btn_con{
    width: 1456px;                                   /*两个按钮的所在的范围*/
    height: 50px;
    margin: 230px auto 0;                            /*按钮位置*/
    position: absolute;                              
    float: left;
}
.btn_con .left,.right{
    width: 50px;                                    /*按钮大小*/
    height: 50px;
    background-color: gold;                         /*背景色*/
    position: absolute;                          
    /*left: 0px;
    top: 0px;*/
    font-size: 50px;                                /*<>的大小*/
    border-radius: 25px;                            /*圆角*/
    line-height: 50px;                              /*垂直居中*/
    font-family: 'Arial';                           /*字体*/
    text-align: center;                             /*水平居中*/
    cursor: pointer;   /*鼠标光标,移到按钮会变成小手,像接触链接一样*/
    opacity: 0.5;     /*透明度*/
}
.right{
    left: 1305px;     /*按钮位置*/
}
.left{
    left: 10px;
}
</style>

</head>

<body>

<div class="btn_con" id="btn">
        <div class="left" id="btn01"><</div>  
        <div class="right" id="btn02">></div>  
</div>
<div class="list_con" id="slide">
    <ul>
        <li><a href="#"><img src="images/小林子1.jpg" alt="nanzi"></a></li>
        <li><a href="#"><img src="images/小林子2.png" alt="nanzi"></a></li>
        <li><a href="#"><img src="images/小林子3.png" alt="nanzi"></a></li>
        <li><a href="#"><img src="images/小林子4.png" alt="nanzi"></a></li>
        <li><a href="#"><img src="images/小林子5.png" alt="nanzi"></a></li>
    </ul>
</div>

</body>
</html>

3.变量作用域

变量作用域指的是变量的作用范围,JavaScript中的变量分为全局变量和局部变量。

(1)全局变量:在函数之外定义的变量,为整个页面公用,函数内部外部都可以访问。

(2)局部变量:在函数内部定义的变量,只能在定义改变量的函数内部访问,外部无法访问

返回web开发教程...