純js模擬div層彈性運(yùn)動(dòng)的方法
本文實(shí)例講述了純js模擬div層彈性運(yùn)動(dòng)的方法。分享給大家供大家參考。具體如下:
特性:
1. 支持各項(xiàng)常數(shù)自定義
2. 理論支持所有元素,只需修改style.width,你懂得
3. 已知支持瀏覽器:chrome/firefox/IE7、8、9
<html>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<script type="text/javascript">
var a=900;//最大距離
var b;//定時(shí)器變量
var c=-1;//下次點(diǎn)擊運(yùn)動(dòng)方向 -1負(fù)向運(yùn)動(dòng) 1正向運(yùn)動(dòng)
var d=2; //反彈常量 數(shù)值越大彈性越小 取值d>1
var e=-1; //當(dāng)前運(yùn)動(dòng)方向
var f=a; //當(dāng)前位置
var g=0; //已單向運(yùn)動(dòng)時(shí)間
var h; //彈性體
var i=15;//運(yùn)動(dòng)速度 數(shù)值越大,運(yùn)動(dòng)越慢
function Bounce(id){
h=document.getElementById(id);
//終止未完成的運(yùn)動(dòng)
if(b)clearInterval(b);
//重置時(shí)間
g=0;
c=-1*c; //下次點(diǎn)擊運(yùn)動(dòng)方向改變
b=setInterval('move()',i);
}
function move(){
if(c==1){
if(e==-1){
if(f-(2*g-1)>0){
f=f-(2*g-1);
g++;
}else{
e=1;
f=1;
g++;
g=parseInt(g/d);
g=g%2==0?(g+1):g;
if(g==3)clearInterval(b);
}
}else{
if(g>0){
g--;
f=f+2*g-1;
}else{
e=-1;
g=0;
}
}
h.style.width=f.toString()+"px";
}else{
if(e==1){
if(f+(2*g-1)<a){
f=f+(2*g-1);
g++;
}else{
e=-1;
f=a;
g++;
g=parseInt(g/d);
g=g%2==0?(g+1):g;
if(g==1)clearInterval(b);
}
}else{
if(g>0){
g--;
f=f-(2*g-1);
}else{
e=1;
g=0;
}
}
h.style.width=f.toString()+"px";
}
}
</script>
</head>
<body>
<div style="color:red;font-size:12px;text-align:center;">
<div style="text-align:left;color:green;margin:50px 300px;">
特性:<br> * 支持各項(xiàng)常數(shù)自定義 <br> * 理論支持所有元素,只需修改style.width,你懂得<br> * 已知支持瀏覽器:chrome/firefox/IE7、8、9
</div>
</div>
<input type="button" value="click me" onClick="Bounce('test');" style="text-align:center;border:1px #ccc solid;padding:5px 10px;margin:0px 200px 100px 200px;"/>
<div style="width:900px;height:200px;margin:0px 200px;background-color:#e8e8e8;border:1px #ccc solid;" id="test" onClick="Bounce('test');"></div>
</body>
</html>
希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。
- JavaScript拖拽、碰撞、重力及彈性運(yùn)動(dòng)實(shí)例分析
- 原生JS+CSS實(shí)現(xiàn)炫酷重力模擬彈跳系統(tǒng)的登錄頁(yè)面
- JavaScript模擬重力狀態(tài)下拋物運(yùn)動(dòng)的方法
- Javascript實(shí)現(xiàn)重力彈跳拖拽運(yùn)動(dòng)效果示例
- JS實(shí)現(xiàn)小球的彈性碰撞效果
- JS彈性運(yùn)動(dòng)實(shí)現(xiàn)方法分析
- js實(shí)現(xiàn)帶簡(jiǎn)單彈性運(yùn)動(dòng)的導(dǎo)航條
- js彈性勢(shì)能動(dòng)畫(huà)之拋物線運(yùn)動(dòng)實(shí)例詳解
- JavaScript實(shí)現(xiàn)重力下落與彈性效果的方法分析
相關(guān)文章
javascript實(shí)現(xiàn)動(dòng)態(tài)增加刪除表格行(兼容IE/FF)
javascript實(shí)現(xiàn)動(dòng)態(tài)增加刪除表格行(兼容IE/FF)...2007-04-04
JavaScript使用Replace進(jìn)行字符串替換的方法
這篇文章主要介紹了JavaScript使用Replace進(jìn)行字符串替換的方法,涉及Replace進(jìn)行一次替換與全部替換的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
微信小程序?qū)崿F(xiàn)同一頁(yè)面取值的方法分析
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)同一頁(yè)面取值的方法,結(jié)合實(shí)例形式分析了微信小程序在同一頁(yè)面取值的常見(jiàn)情況與具體操作技巧,需要的朋友可以參考下2019-04-04
基于javascript實(shí)現(xiàn)圖片左右切換效果
這篇文章主要為大家介紹了基于javascript實(shí)現(xiàn)圖片左右切換效果,感興趣的小伙伴們可以參考一下2016-01-01
JavaScript模擬文件拖選框樣式v1.0的實(shí)例
下面小編就為大家?guī)?lái)一篇JavaScript模擬文件拖選框樣式v1.0的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
基于JavaScript實(shí)現(xiàn)的折半查找算法示例
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)的折半查找算法,結(jié)合實(shí)例形式分析了折半查找的原理、操作步驟及javascript實(shí)現(xiàn)折半查找的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2017-04-04

