zoukankan      html  css  js  c++  java
  • (39)JS运动之缓冲运动

    基本思路:使用定时器让物体向右运动,在运动的过程中再不是匀速运动,而是先快后慢,即距离越大,速度越快,距离越小,速度越小,可是到达终点的时候,必须注意要使用向上取整函数Math.ceil()和向下取整函数Math.floor();这样才可以正确无误地到达终点,而不是有出入。

    <!DOCTYPE HTML>
    <!--
    	
    -->
    <html>
    <head>
    <meta charset="utf-8">
    <title></title>
    <style>
    #div1{
    	100px;
    	height:100px;
    	background:red;
    	position:absolute;
    	left:0px;//left:600px;
    	top:50px;
    }
    #div2{
    	1px;
    	height:300px;
    	background:red;
    	position:absolute;
    	left:300px;
    	top:0px;
    	background:black;
    
    }
    
    
    </style>
     
    
    <script>
    
    function startMove(){
    
    	var oDiv=document.getElementById('div1');
    	setInterval(function(){
    
    		var speed=(300-oDiv.offsetLeft)/10;
    		speed=speed>0?Math.ceil(speed):Math.floor(speed);//向上取整
    		oDiv.style.left=oDiv.offsetLeft+speed+'px';
    		document.title=oDiv.offsetLeft+','+speed;
    	
    
    	},30);
    }
    
    </script>
    </head>
    <body>
       <input type="button" value="開始运动" onclick="startMove()"/>
       <div id="div1"></div>
       <div id="div2">/<div>
    
    </body>
    </html>
    效果图:

    初始状态,分别从左出发和从右出发:




    没取整导致有出入的情况,title表示终点位置和速度大小:

    取整没误差情况:





  • 相关阅读:
    JS操作JSON总结
    jQuery对select操作
    MS SQL GUID
    QT延时方法
    MySQL 实践
    MySQL 入门教程
    asp.net获取URL和IP地址
    C#-foreach与yield
    C#—序列化(Serialize)和反序列化(NonSerialize)
    Newtonsoft.Json序列化和反序列
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/3983811.html
Copyright © 2011-2022 走看看