js實(shí)現(xiàn)同一頁面多個(gè)不同運(yùn)動(dòng)效果的方法
本文實(shí)例講述了js實(shí)現(xiàn)同一頁面多個(gè)不同運(yùn)動(dòng)效果的方法。分享給大家供大家參考。具體分析如下:
要點(diǎn)一:
function getstyle(obj,name){ if(obj.currentStyle){ return obj.currentStyle[name]; }else{ return getComputedStyle(obj,false)[name]; } }
從樣式表中根據(jù)id和屬性名取值。
要點(diǎn)二:
if(attr == "opacity"){ cur = Math.round(parseFloat(getstyle(obj,attr))*100); }else{ cur = parseInt(getstyle(obj,attr)); }
如果設(shè)置的是透明度的值,因?yàn)橛锌赡軙?huì)是小數(shù)點(diǎn),所以需要用parseFloat,然后有可能會(huì)有小數(shù),用round方法四舍五入取整。
如果設(shè)置的非透明度值,用parseInt,可以只取數(shù)值部分
其它的注意點(diǎn),前面幾篇都有提到,此處不再贅述。
最后,上代碼:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>無標(biāo)題文檔</title> <style> body,ul,li{margin:0; padding:0;} #runs li{width:80px; height:80px; background:#06c; list-style:none; margin:10px; border:1px solid #000; filter:alpha(opacity=30); opacity:0.3;} </style> <script> window.onload = function(){ var runs = document.getElementById("runs"); var runs_li = runs.getElementsByTagName("li"); runs_li[0].onmouseover = function(){ startrun(this,"width",300); } runs_li[0].onmouseout = function(){ startrun(this,"width",80); } runs_li[1].onmouseover = function(){ startrun(this,"height",300); } runs_li[1].onmouseout = function(){ startrun(this,"height",80); } runs_li[2].onmouseover = function(){ startrun(this,"fontSize",50); } runs_li[2].onmouseout = function(){ startrun(this,"fontSize",14); } runs_li[3].onmouseover = function(){ startrun(this,"opacity",100); } runs_li[3].onmouseout = function(){ startrun(this,"opacity",30); } } function startrun(obj,attr,target){ clearInterval(obj.timer); obj.timer = setInterval(function(){ var cur = 0; if(attr == "opacity"){ cur = Math.round(parseFloat(getstyle(obj,attr))*100); }else{ cur = parseInt(getstyle(obj,attr)); } var speed = (target - cur)/8; speed = speed>0?Math.ceil(speed):Math.floor(speed); if(cur == target){ clearInterval(obj.timer); }else{ if(attr == "opacity"){ obj.style.filter='alpha(opacity='+(cur+speed)+')'; obj.style.opacity=(cur+speed)/100; }else{ obj.style[attr] = cur+speed+"px"; } } },30); } function getstyle(obj,name){ if(obj.currentStyle){ return obj.currentStyle[name]; }else{ return getComputedStyle(obj,false)[name]; } } </script> </head> <body> <ul id="runs"> <li style="top:0">1</li> <li style="top:90px;">2</li> <li style="top:180px;">3</li> <li style="top:270px;">4</li> </ul> </body> </html>
希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。
- JavaScript拖拽、碰撞、重力及彈性運(yùn)動(dòng)實(shí)例分析
- js運(yùn)動(dòng)應(yīng)用實(shí)例解析
- 淺析JS運(yùn)動(dòng)
- JavaScript運(yùn)動(dòng)減速效果實(shí)例分析
- 純js模擬div層彈性運(yùn)動(dòng)的方法
- javascript實(shí)現(xiàn)10個(gè)球隨機(jī)運(yùn)動(dòng)、碰撞實(shí)例詳解
- javascript運(yùn)動(dòng)詳解
- javascript關(guān)于運(yùn)動(dòng)的各種問題經(jīng)典總結(jié)
- js實(shí)現(xiàn)同一頁面多個(gè)運(yùn)動(dòng)效果的方法
- js實(shí)現(xiàn)緩沖運(yùn)動(dòng)效果的方法
- js運(yùn)動(dòng)動(dòng)畫的八個(gè)知識(shí)點(diǎn)
- JS運(yùn)動(dòng)相關(guān)知識(shí)點(diǎn)小結(jié)(附彈性運(yùn)動(dòng)示例)
相關(guān)文章
原生JS實(shí)現(xiàn)H5轉(zhuǎn)盤游戲的示例代碼
這篇文章主要介紹了如何利用原生JS實(shí)現(xiàn)轉(zhuǎn)盤游戲,可以自由調(diào)整概率。文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JavaScript有一定幫助,需要的可以參考一下2022-03-03一個(gè)可以隨意添加多個(gè)序列的tag函數(shù)
由于在沒有規(guī)劃好的情況下寫的這個(gè)代碼,寫的比較粗糙,也沒有添加注釋。 JavaScript代碼和HTML完全分離;可以隨意添加多個(gè)子div標(biāo)簽,自動(dòng)擴(kuò)展2009-07-07微信小程序用戶授權(quán)環(huán)節(jié)實(shí)現(xiàn)過程
這篇文章主要介紹了微信小程序用戶授權(quán)環(huán)節(jié)實(shí)現(xiàn)過程,在商城項(xiàng)目中,我們需要對(duì)部分的頁面,進(jìn)行一個(gè)授權(quán)的判別,例如購(gòu)物車,及個(gè)人中心,需要完成用戶信息的授權(quán)后,獲取到相關(guān)信息2023-01-01根據(jù)user-agent判斷蜘蛛代碼黑帽跳轉(zhuǎn)代碼(js版與php版本)
這篇文章主要介紹了根據(jù)user-agent判斷蜘蛛代碼黑帽跳轉(zhuǎn)代碼(js版與php版本),需要的朋友可以參考下2015-09-09showModalDialog 和 showModelessDialog
showModalDialog 和 showModelessDialog...2007-01-01JS面向?qū)ο缶幊虒?shí)現(xiàn)的拖拽功能案例詳解
這篇文章主要介紹了JS面向?qū)ο缶幊虒?shí)現(xiàn)的拖拽功能,結(jié)合具體案例形式詳細(xì)對(duì)比分析了JS面向過程與面向?qū)ο髮?shí)現(xiàn)的拖拽功能相關(guān)操作技巧,需要的朋友可以參考下2020-03-03使用JavaScript校驗(yàn)URL的方法小結(jié)
JavaScript中如何校驗(yàn)一個(gè)URL?最近遇到幾次需要校驗(yàn)URL的,所以本文給大家整理一下幾個(gè)校驗(yàn)URL的方法,文中有詳細(xì)的代碼講解和圖文參考,具有一定的參考價(jià)值,需要的朋友可以參考下2023-12-12