JS高级之运动篇

1.function startMove(){
            var oDiv=document.getElementById('div1');
            setInterval(function(){
                oDiv.style.left=oDiv.offsetLeft+10+'px';
            },30);

        }

offset代表当前对象的当前left值。

2.要想停止setInterval,之前必须为interval设置一个变量。clearInterval(timer);

3.if...else..对立条件下分别做不同的事。

4.startMove函数:<script type="text/javascript">
        var timer=null;
        function startMove(){
            var oDiv=document.getElementById('div1');
            clearInterval(timer);
            timer=setInterval(function(){
                var iSpeed=9;
                if(oDiv.offsetLeft>=300){
                    clearInterval(timer);//到达终点时要做的事
                }else {
                    oDiv.style.left = oDiv.offsetLeft + iSpeed + 'px';//到达终点之前要做的事
                }
            },30);
        }
    </script>

5.position:absolute;如果父级有定位属性,则是相对父级进行定位。

6.span是为行级元素设置样式的。

7.分享到鼠标移入移出行为:

<style>
        #div1{width:100px;height:200px;background: #ccc;position:absolute;left:-100px;}
        #div1 span{width:20px;height:60px;line-height: 20px;text-align: center;
            position:absolute;left:100px;top:70px;background: yellow;}
    </style>
    <script>
        window.οnlοad=function(){
            var oDiv=document.getElementById('div1');
            oDiv.οnmοuseοver=function(){
                startMove();
            }
            oDiv.οnmοuseοut=function(){
                startMove2();
            }
        };
        var timer=null;
        function startMove(){
            var oDiv=document.getElementById('div1');
            clearInterval(timer);
            timer=setInterval(function(){
                        if(oDiv.offsetLeft==0){
                            clearInterval(timer);
                        }else {
                            oDiv.style.left = oDiv.offsetLeft + 10 + 'px';
                        }
                    }
                    ,30);
        }
        function startMove2(){
            var oDiv=document.getElementById('div1');
            clearInterval(timer);
            timer=setInterval(function(){
                        iSpeed=-10;
                        if(oDiv.offsetLeft==-100){
                            clearInterval(timer);
                        }else {
                            oDiv.style.left = oDiv.offsetLeft + iSpeed + 'px';
                        }
                    }
                    ,30);
        }
    </script>
</head>
<body>
<div id="div1">
    <span>分享到</span>
</div>
</html>

8.如何合并2个长得差不多的函数?很简单,将不同的部分作为参数传入函数。

<script>
        window.οnlοad=function(){
            var oDiv=document.getElementById('div1');
            oDiv.οnmοuseοver=function(){
                startMove(10,0);
            }
            oDiv.οnmοuseοut=function(){
                startMove(-10,-100);
            }
        };
        var timer=null;
        function startMove(iSpeed,iTaget){
            var oDiv=document.getElementById('div1');
            clearInterval(timer);
            timer=setInterval(function(){
                        if(oDiv.offsetLeft==iTaget){
                            clearInterval(timer);
                        }else {
                            oDiv.style.left = oDiv.offsetLeft + iSpeed + 'px';
                        }
                    }
                    ,30);
        }
    </script>

9.符合生活习惯,对外接口参数越少越好(在通过方法可以解决的前提下,通过目标点计算出速度)

var iSpeed=null;
 if(oDiv.offsetLeft<iTaget){
            iSpeed=10;
 }else{
            iSpeed=-10;

 }

10、图片路径:../../1.jpg(与其上级的上级同级)  1.jpg是与所在html同级的意思。

11、用变量存储透明度

 <style>
        #img1{
            filter:alpha(opacity:30);opacity:0.3;
        }
 </style>
<script type="text/javascript">
        window.οnlοad=function(){
            var oImg=document.getElementById('img1');
            oImg.οnmοuseοver=function(){
                startMove(100);
            };
            oImg.οnmοuseοut=function(){
               startMove(30);
            }
        };
        var timer=null;
        var alpha=30;
        function startMove(iTaget){
            var oImg=document.getElementById('img1');
            clearInterval(timer);
            timer=setInterval(function(){
                if(alpha<iTaget){
                    iSpeed=1;
                }else{
                    iSpeed=-1;
                }
                if(alpha==iTaget){
                    clearInterval(timer)
                }else{
                    alpha+=iSpeed;
                    oImg.style.filter='alpha(opacity:'+alpha+')';
                    oImg.style.opacity=alpha/100;
                    document.title=alpha;
                }
            },30);
        }
 </script>
</head>
<body>
<img id="img1" src="../../csdn.jpg"/>
</body>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值