JS實(shí)現(xiàn)勻速運(yùn)動(dòng)的代碼實(shí)例
更新時(shí)間:2013年11月29日 16:45:42 作者:
這篇文章主要介紹了JS實(shí)現(xiàn)勻速運(yùn)動(dòng)的代碼實(shí)例,有需要的朋友可以參考一下
效果:
思路:
利用setInerval()計(jì)時(shí)器,進(jìn)行運(yùn)動(dòng)。然后關(guān)鍵的一點(diǎn)是在最后停止的時(shí)候給它一個(gè)填充縫隙的判斷。
代碼:
復(fù)制代碼 代碼如下:
<head runat="server">
<title></title>
<style type="text/css">
#div1
{
width: 100px;
height: 100px;
background: #0000FF;
position: absolute;
left: 800px;
top: 100px;
}
#div200
{
width: 1px;
height: 400px;
background: #FF0000;
position: absolute;
left: 200px;
}
#div500
{
width: 1px;
height: 400px;
background: #FF0000;
position: absolute;
left: 500px;
}
</style>
<script type="text/javascript">
function move(end) {
var oDiv = document.getElementById('div1');
var timer = null;
timer = setInterval(function () {
var speed = (end - oDiv.offsetLeft) / 5; //根據(jù)終點(diǎn)和offsetLeft取出運(yùn)動(dòng)的速度
speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); //進(jìn)位取整,小數(shù)位變?yōu)檎唬?BR> // if (oDiv.offsetLeft <= end) {
// clearInterval(timer);
// }
// else {
// oDiv.style.left = oDiv.offsetLeft + speed + 'px';
// }
if (Math.abs(end - oDiv.offsetLeft) <= speed) { //由于在停止的時(shí)候最后會(huì)出現(xiàn)小的縫隙,或者說沒有完全的到達(dá)指定地點(diǎn),所以要小于它的速度
clearInterval(timer); //當(dāng)距離小于速度時(shí),讓計(jì)時(shí)器停止
oDiv.style.left = end + 'px'; //在停止后填充縫隙。
}
else {
oDiv.style.left = oDiv.offsetLeft + speed + 'px'; //移動(dòng)DIV
}
}, 30)
}
</script>
</head>
<body>
<input type="button" id="btn1" value="到500的位置" onclick="move(500);" />
<input type="button" id="btn2" value="到200的位置" onclick="move(200);" />
<div id="div1">
</div>
<div id="div200">200
</div>
<div id="div500">500
</div>
</body>
您可能感興趣的文章:
- js指定步長(zhǎng)實(shí)現(xiàn)單方向勻速運(yùn)動(dòng)
- 原生javascript實(shí)現(xiàn)勻速運(yùn)動(dòng)動(dòng)畫效果
- javascript勻速運(yùn)動(dòng)實(shí)現(xiàn)方法分析
- 淺談Javascript中勻速運(yùn)動(dòng)的停止條件
- 淺談Javascript如何實(shí)現(xiàn)勻速運(yùn)動(dòng)
- JS勻速運(yùn)動(dòng)演示示例代碼
- JavaScript中的勻速運(yùn)動(dòng)和變速(緩沖)運(yùn)動(dòng)詳細(xì)介紹
- 原生JS實(shí)現(xiàn)各種運(yùn)動(dòng)之勻速運(yùn)動(dòng)
相關(guān)文章
微信小程序module.exports模塊化操作實(shí)例淺析
這篇文章主要介紹了微信小程序module.exports模塊化操作,結(jié)合實(shí)例形式簡(jiǎn)單分析了module.exports模塊化的定義與引用相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-12-12
一篇文章搞定JavaScript類型轉(zhuǎn)換(面試常見)
這篇文章主要介紹了一篇文章搞定JavaScript類型轉(zhuǎn)換(面試常見),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-01-01
javascript刪除數(shù)組元素的七個(gè)方法示例
這篇文章主要給大家介紹了關(guān)于javascript刪除數(shù)組元素的七個(gè)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用javascript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

