JS运动基础 01

============================================================================
运动小框架:
要记得先关后开

<style>
        #div1{
            width: 200px; height: 200px;background-color: aqua;position: absolute; top: 50px; left: 10px;
        }
    </style>
    <script>
        window.onload=function(){
            var obtn=document.getElementById('btn1')
            var odiv=document.getElementById('div1')
            var timer=null;
            var speed=7
            obtn.onclick=function()
            {
                clearInterval(timer)//防止同时开很多定时器!!
                timer=setInterval(function(){
                        if(odiv.offsetLeft>=300)//在规定位置停下
                        {
                            clearInterval(timer)
                        }
                        else
                        {
                            odiv.style.left=odiv.offsetLeft+speed+'px';
                        }
                       
                }, 30);
            }
        }

    </script>

</head>
<body>
        <input id="btn1" type="button" value="开始运动">
        <div id="div1"></div>
</body>

============================================================================

!!函数一般在保证功能相同的情况下,参数越少越好

模拟缩进屏幕运动:

效果:
在这里插入图片描述
代码:

 <script>
        window.onload=function(){
            var odiv=document.getElementById('div1')
            var timer=null;
          

            odiv.onmouseover=function(){  
                    setrun(0)

            }
            odiv.onmouseout=function(){  
                    setrun(-200)

            }
          
           function setrun(end){//使用运动小框架
            clearInterval(timer)
                    timer=setInterval(function(){
                        var speed=0
                            if(odiv.offsetLeft<end)
                                {
                                    speed=5
                                }
                                else
                                {
                                    speed=-5
                                }

                            if(Math.abs(end-odiv.offsetLeft)<=speed)
                            //最后距离绝对值少于运动一次的距离防止过头
                                {
                                    clearInterval(timer)
                                    odiv.style.left=end+‘px’//最后一次移动直接移到终点
                                }
                            else
                                {
                                    odiv.style.left=odiv.offsetLeft+speed+'px'
                                }

                },30)
           } 
        }
    </script>

</head>
<body>
        <div id="div1">
            <span>分享到</span>    
        </div>
   </body>      

模拟透明度变化:

效果:
在这里插入图片描述
在这里插入图片描述

代码:

<style>
        #div1{//filter--->兼容IE浏览器      opacity--->兼容chrom浏览器
            width: 200px;height: 200px;background-color: blueviolet; filter : alpha(opacity=30); opacity :0.3; }
    </style>
<script>

        window.onload=function(){
            var odiv=document.getElementById('div1')
            var timer=null;              
            var alpha=30;//与运动不同,要用一个变量模拟当前透明度
            odiv.onmouseover=function(){
                    set_opacity(100)
                
            }
            odiv.onmouseout=function(){

                    set_opacity(30)
            }      

            function set_opacity(iend){
                var odiv=document.getElementById('div1')
                      
                 clearInterval(timer)
                 timer=setInterval(function()
                 {
                        var speed=0
                            if(alpha<iend)
                        {
                                speed=5
                        }
                        else
                        {
                                speed=-5
                        }

                        if(alpha==iend)
                        {
                            clearInterval(timer)
                        }
                        else
                        {
                            alpha+=speed;

                            odiv.style.filter='alpha(opacity='+alpha+')';
                            odiv.style.opacity=alpha/100;//在最后填充回css中
                        }
                 },30)

             }     

        }
      
             
    </script>
</head>
<body>
    <div id="div1"></div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值