JavaScript緩沖運(yùn)動(dòng)實(shí)現(xiàn)方法(2則示例)
本文實(shí)例講述了JavaScript緩沖運(yùn)動(dòng)實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
實(shí)現(xiàn)原理:(目標(biāo)距離-當(dāng)前距離) / 基數(shù) = 速度(運(yùn)動(dòng)距離越大速度越小,運(yùn)動(dòng)距離和速度成反比)
需要注意:當(dāng)計(jì)算出來的速度有小數(shù)時(shí)需要取整;
例子1:滑塊緩沖運(yùn)動(dòng)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>緩沖運(yùn)動(dòng)</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="移動(dòng)" />
<div id="div1"></div>
<span></span>
</body>
</html>
例子2:側(cè)邊欄滑動(dòng)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>側(cè)邊欄滑動(dòng)</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>
更多關(guān)于JavaScript運(yùn)動(dòng)效果相關(guān)內(nèi)容可查看本站專題:《JavaScript運(yùn)動(dòng)效果與技巧匯總》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- js實(shí)現(xiàn)緩沖運(yùn)動(dòng)效果的方法
- JS實(shí)現(xiàn)多物體緩沖運(yùn)動(dòng)實(shí)例代碼
- JS多物體 任意值 鏈?zhǔn)?緩沖運(yùn)動(dòng)
- JavaScript實(shí)現(xiàn)跟隨滾動(dòng)緩沖運(yùn)動(dòng)廣告框
- JS多物體實(shí)現(xiàn)緩沖運(yùn)動(dòng)效果示例
- javascript 緩沖運(yùn)動(dòng)框架的實(shí)現(xiàn)
- JavaScript中的勻速運(yùn)動(dòng)和變速(緩沖)運(yùn)動(dòng)詳細(xì)介紹
- JS實(shí)現(xiàn)物體帶緩沖的間歇運(yùn)動(dòng)效果示例
- JS實(shí)現(xiàn)運(yùn)動(dòng)緩沖效果的封裝函數(shù)示例
- JS實(shí)現(xiàn)的緩沖運(yùn)動(dòng)效果示例
相關(guān)文章
關(guān)于捕獲用戶何時(shí)點(diǎn)擊window.onbeforeunload的取消事件
關(guān)于捕獲用戶何時(shí)點(diǎn)擊window.onbeforeunload的取消事件的代碼,需要的朋友可以參考下。2011-03-03
詳解小程序中h5頁面onShow實(shí)現(xiàn)及跨頁面通信方案
這篇文章主要介紹了小程序中h5頁面onShow實(shí)現(xiàn)及跨頁面通信方案,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-05-05
詳細(xì)教你微信公眾號(hào)正文頁SVG交互開發(fā)技巧
這篇文章主要介紹了詳細(xì)教你微信公眾號(hào)正文頁SVG交互開發(fā)技巧,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
elementui更改el-dialog關(guān)閉按鈕的圖標(biāo)d的示例代碼
這篇文章主要介紹了elementui更改el-dialog關(guān)閉按鈕的圖標(biāo),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
JavaScript截屏功能的實(shí)現(xiàn)代碼
我覺得使用JS截圖的想法是非?;闹嚨?,首先JS沒有權(quán)限調(diào)用操作系統(tǒng)的截圖功能,其次,瀏覽器(BOM)也沒有提供相關(guān)的截圖接口,經(jīng)過一番折騰,有點(diǎn)思路了,下面通過實(shí)例代碼給大家簡單介紹下js 截屏功能的實(shí)現(xiàn)代碼,一起看看吧2017-07-07
Javascript實(shí)現(xiàn)一朵從含苞到綻放的玫瑰
今天小編就為大家分享一篇關(guān)于Javascript實(shí)現(xiàn)一朵從含苞到綻放的玫瑰,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03
JavaScript進(jìn)制數(shù)之間的互相轉(zhuǎn)換
這篇文章主要介紹了JavaScript進(jìn)制數(shù)之間的互相轉(zhuǎn)換,進(jìn)制轉(zhuǎn)換是人們利用符號(hào)來計(jì)數(shù)的方法,下文基于JavaScript實(shí)現(xiàn)進(jìn)制數(shù)之間的轉(zhuǎn)換,有一定的知識(shí)性參考價(jià)值,需要的小伙伴可以參考一下2022-05-05
javascript 設(shè)為首頁與加入收藏兼容多瀏覽器代碼
javascript 設(shè)為首頁與加入收藏兼容多瀏覽器代碼,不過由于ie7的特殊性,設(shè)為首頁不能使用,不過其它基于ie內(nèi)核的瀏覽器都是支持的。2011-01-01
javascript實(shí)現(xiàn)計(jì)算指定范圍內(nèi)的質(zhì)數(shù)示例
這篇文章主要介紹了javascript實(shí)現(xiàn)計(jì)算指定范圍內(nèi)的質(zhì)數(shù),涉及javascript數(shù)值計(jì)算與判斷相關(guān)操作技巧,需要的朋友可以參考下2018-12-12

