JavaScript緩沖運動實現(xiàn)方法(2則示例)
本文實例講述了JavaScript緩沖運動實現(xiàn)方法。分享給大家供大家參考,具體如下:
實現(xiàn)原理:(目標距離-當前距離) / 基數(shù) = 速度(運動距離越大速度越小,運動距離和速度成反比)
需要注意:當計算出來的速度有小數(shù)時需要取整;
例子1:滑塊緩沖運動
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>緩沖運動</title>
<style>
#div1{ width:100px; height:100px; background:red; position:absolute; top:50px; left:0;}
span{ width:1px; height:300px; background:black; position:absolute; left:300px; top:0; display:block;}
</style>
<script>
window.onload = function()
{
var oBtn = document.getElementById('btn1');
var oDiv = document.getElementById('div1');
oBtn.onclick = function()
{
startMove(oDiv, 300);
};
};
var timer = null;
function startMove(obj, iTarget)
{
clearInterval(timer);
timer = setInterval(function(){
var iSpeed = (iTarget - obj.offsetLeft)/8;
iSpeed = iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
if(iTarget==obj.offsetLeft){
clearInterval(timer);
}else{
obj.style.left = obj.offsetLeft + iSpeed + 'px';
}
}, 30);
}
</script>
</head>
<body>
<input id="btn1" type="button" value="移動" />
<div id="div1"></div>
<span></span>
</body>
</html>
例子2:側(cè)邊欄滑動
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>側(cè)邊欄滑動</title>
<style>
#div1{ width:100px; height:100px; background:red; position:absolute; right:0; top:0;}
</style>
<script>
window.onload = window.onscroll = function()
{
var oDiv = document.getElementById('div1');
var iScrollTop = document.documentElement.scrollTop || document.body.scrollTop;
var clientHeight = document.documentElement.clientHeight;
var iH = (clientHeight - oDiv.offsetHeight)/2 + iScrollTop;
//oDiv.style.top = iH + 'px';
startMove(oDiv, parseInt(iH));
};
var timer = null;
function startMove(obj, iTarget)
{
clearInterval(timer);
timer = setInterval(function(){
var iSpeed = (iTarget - obj.offsetTop) / 8;
iSpeed = iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
if(obj.offsetTop == iTarget){
clearInterval(timer);
}else{
obj.style.top = obj.offsetTop + iSpeed + 'px';
}
}, 30);
}
</script>
</head>
<body style="height:2000px;">
<div id="div1"></div>
</body>
</html>
更多關于JavaScript運動效果相關內(nèi)容可查看本站專題:《JavaScript運動效果與技巧匯總》
希望本文所述對大家JavaScript程序設計有所幫助。
相關文章
關于javascript中限定時間內(nèi)防止按鈕重復點擊的思路詳解
下面小編就為大家?guī)硪黄P于javascript中限定時間內(nèi)防止按鈕重復點擊的思路詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08
JavaScript仿小米商城官網(wǎng)完整頁面實現(xiàn)流程
只能看不能玩的靜態(tài)頁面早就看夠了吧,今天我們來做一個相對完整的動態(tài)網(wǎng)站,用Javascript來實現(xiàn)模仿小米的官網(wǎng)商城,感興趣的朋友快來看看吧2021-11-11
javascript-表格排序(降序/反序)實現(xiàn)介紹(附圖)
使用了Array方法、sort:降序、reverse:反序完成了基本功能,對于聯(lián)合排序沒有實現(xiàn),感興趣的朋友可以參考下哈2013-05-05
全面解析Bootstrap中transition、affix的使用方法
這篇文章主要為大家詳細解析了Bootstrap中transition、affix的使用方法,感興趣的朋友可以參考一下2016-05-05

