萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> js實現緩沖運動效果的方法

js實現緩沖運動效果的方法

 具體分析如下:

該實例可實現一開始速度很快,然後慢下來,直到停止的效果。

要點:

1 var speed = (target-box.offsetLeft)/8;

目標點減去元素的當前位置的值除以8,因為offsetleft的值是一直在變大,所以速度的值也是一直的變小

1 speed = speed>0?Math.ceil(speed):Math.floor(speed);

正向速度的時候向上取整,反向速度的時候向下取整

代碼:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 <!DOCTYPE html> <html> <head> <meta charset="gb2312" /> <title>無標題文檔</title> <style> <!-- body{margin:0; padding:0; font:12px/1.5 arial;} #box{width:100px; height:100px; position:absolute; background:#06c; left:0;} --> </style> <script> <!-- window.onload = function(){ var box = document.getElementById("box"); var btn = document.getElementById("btn"); var timer=null; btn.onclick = function(){ startrun(300); } function startrun(target){ clearInterval(timer); timer = setInterval(function(){ var speed = (target-box.offsetLeft)/8; speed = speed>0?Math.ceil(speed):Math.floor(speed); if(box.offsetLeft == target){ clearInterval(timer); }else{ box.style.left = box.offsetLeft+speed+"px"; } document.getElementById('abc').innerHTML+=box.offsetLeft+','+speed+'<br>'; },30); } } //--> </script> </head> <body> <input id="btn" type="submit" value="向右運動"> <div id="box"> </div> <br> <textarea id="abc" cols="50" rows="10" style="margin-top:130px"></textarea> </body> </html>
copyright © 萬盛學電腦網 all rights reserved