码迷,mamicode.com
首页 > Web开发 > 详细

对于js运动中产生的问题

时间:2016-08-15 22:13:55      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

1、不同的对象调用同一个定时器情况,则需要将定时器的名称定为该对象的一个属性来进行运用。

例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #div1{
            width: 100px;
            height: 200px;
            background-color: red;
            position: absolute;
            left: -100px;
            top: 100px;
        }
        #div2{
            width: 30px;
            height: 60px;
            background-color: black;
            color: white;
            position: absolute;
           right: -30px;
            top: 70px;
            text-align: center;
        }
        #img1{
            width: 400px;
            opacity: 0.3;
            filter: alpha(opacity=30);
            margin-left: 200px;
        }

    </style>
</head>
<script>
    window.onload=function () {
        var oDiv1 = document.getElementById(div1);
        var oDiv2 = document.getElementById(div2);
        var oImg=document.getElementById(img1);
//        var iTimer = null;

        oDiv1.onmouseover=function () {
            startMove(this,left,0,10);
        }
        oDiv1.onmouseout=function () {
            startMove(this,left,-100,-10);
        }
        oImg.onmouseover=function () {
            startMove(this,opacity,100,10);
        }
        oImg.onmouseout=function () {
            startMove(this,opacity,30,-10);
        }
//        function startMove(obj,iTarget,iSpeed) {
//
//            clearInterval(iTimer );
//
//            obj.iTimer= setInterval(function () {
//                if (obj.offsetLeft ==iTarget) {
//                    clearInterval(iTimer);
//                } else {
//                    obj.style.left = obj.offsetLeft +iSpeed + ‘px‘;
//                }
//            }, 30);
//        }

        function startMove(obj,attr,iTarget,iSpeed) {
            clearInterval(obj.iTimer);
            var iCur=0;

            obj.iTimer = setInterval(function () {

                if(attr==opacity){
                    iCur=Math.round(css(obj,opacity)*100);
                }else {
                    iCur=parseInt(css(obj,attr));
                }

                if (iCur ==iTarget) {
                    clearInterval(obj.iTimer );
                } else {
                    if(attr==opacity){
                        obj.style.opacity = (iCur+iSpeed)/100;
                        obj.style.filter=alpha(opacity+(iCur+iSpeed)+);
                    }else {
                        obj.style[attr]=iCur+iSpeed+px;
                    }
                }
            }, 30);
        }
        function css(obj,attr) {
            if(obj.currentStyle){
                return obj.currentStyle[attr];
            }else {
                return getComputedStyle(obj,false)[attr];
            }
        }

    }
</script>
<body>
    <div id="div1">
        <div id="div2">
            分享到
        </div>
    </div>
    <img src="5.jpg" id="img1">
</body>
</html>

2、

 

对于js运动中产生的问题

标签:

原文地址:http://www.cnblogs.com/yuxingyoucan/p/5774414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!