JS sports --- motion base (cushion motion)

 

 

(1) Effect accordion

  analysis:

    

 

(2) basic cushion movement

  

 

 

   Next rounding

  the reason:

px is a minimum unit recognized by computer, 1px not subdivided down. So if css value 200.5px, when resolving computer will automatically change it to 200px 
Note: The value here is not rounding computing, 200.9px last remains 200px

  Speed ​​is not decimal rounding needed, so the next rounding

  Because the movement from left to right and right-to-left movement is not the same, so it is necessary to determine

  

(3) moving the right suspension frame buffer

  

 

   

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<Title> Untitled Document </ title>
<style>
#div1 {width:100px; height:150px; background:red; position:absolute; right:0; bottom:0;}
</style>
<script>
window.onscroll=function ()
{
    var oDiv=document.getElementById('div1');
    var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;
    
    //oDiv.style.top=document.documentElement.clientHeight-oDiv.offsetHeight+scrollTop+'px';
    startMove(document.documentElement.clientHeight-oDiv.offsetHeight+scrollTop);
};

var timer=null;

function startMove(iTarget)
{
    var oDiv=document.getElementById('div1');
    
    clearInterval(timer);
    timer=setInterval(function (){
        var speed=(iTarget-oDiv.offsetTop)/4;
        speed=speed>0?Math.ceil(speed):Math.floor(speed);
        
        if(oDiv.offsetTop==iTarget)
        {
            clearInterval(timer);
        }
        else
        {
            oDiv.style.top=oDiv.offsetTop+speed+'px';
        }
    }, 30);
}
</script>
</head>

<body style="height:2000px;">
<div id="div1"></div>
</body>
</html>

(4)运动应用

 

 

 

 

 

 

(5)多物体运动

核心:1、每个元素添加自定义属性timer‘2、多物体不能共用属性和数值’

多物体淡入淡出

 

 

(6)

 

 

 

 

.

Guess you like

Origin www.cnblogs.com/jianxian/p/12078308.html