js實(shí)現(xiàn)同一頁(yè)面多個(gè)不同運(yùn)動(dòng)效果的方法
本文實(shí)例講述了js實(shí)現(xiàn)同一頁(yè)面多個(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>無(wú)標(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)的各種問(wèn)題經(jīng)典總結(jié)
- js實(shí)現(xiàn)同一頁(yè)面多個(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)屏蔽網(wǎng)頁(yè)右鍵復(fù)制及ctrl+c復(fù)制的方法【2種方法】
這篇文章主要介紹了JS實(shí)現(xiàn)屏蔽網(wǎng)頁(yè)右鍵復(fù)制及ctrl+c復(fù)制的方法,結(jié)合實(shí)例形式分析了2種比較常用的屏蔽復(fù)制功能的技巧,需要的朋友可以參考下2016-09-09
原生JavaScript創(chuàng)建不可變對(duì)象的方法簡(jiǎn)單示例
這篇文章主要介紹了原生JavaScript創(chuàng)建不可變對(duì)象的方法,結(jié)合簡(jiǎn)單實(shí)例形式分析了基于原生JavaScript創(chuàng)建不可變對(duì)象的相關(guān)原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2020-05-05
JavaScript callback回調(diào)函數(shù)用法實(shí)例分析
這篇文章主要介紹了JavaScript callback回調(diào)函數(shù)用法,結(jié)合實(shí)例形式分析了callback回調(diào)函數(shù)的概念、功能、應(yīng)用場(chǎng)景及相關(guān)使用技巧,需要的朋友可以參考下2018-05-05
JavaScript如何讀取本地excel文件、txt文件的內(nèi)容
JavaScript是一種腳本語(yǔ)言,廣泛應(yīng)用于前端開發(fā),這篇文章主要給大家介紹了關(guān)于JavaScript如何讀取本地excel文件、txt文件的內(nèi)容,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06
利用Javascript裁剪圖片并存儲(chǔ)的簡(jiǎn)單實(shí)現(xiàn)
裁剪圖片對(duì)我們來(lái)說(shuō)是再熟悉不過(guò)的了,最近工作中就又遇到了這個(gè)需求,所以想著干脆整理下來(lái),方法大家和自己在需要的時(shí)候參考學(xué)習(xí),所以這篇文章主要介紹了利用Javascript裁剪圖片并存儲(chǔ)的簡(jiǎn)單實(shí)現(xiàn),后端PHP處理我用的是THINKPHP框架,需要的朋友可以參考下。2017-03-03
深入理解JavaScript系列(4) 立即調(diào)用的函數(shù)表達(dá)式
大家學(xué)JavaScript的時(shí)候,經(jīng)常遇到自執(zhí)行匿名函數(shù)的代碼,今天我們主要就來(lái)想想說(shuō)一下自執(zhí)行2012-01-01
js createRange與createTextRange的一些用法實(shí)例
關(guān)于createTextRange和createRange的一些用法,腳本之家增強(qiáng)版。2010-05-05
js中數(shù)組(Array)的排序(sort)注意事項(xiàng)說(shuō)明
本篇文章主要是對(duì)js中數(shù)組(Array)的排序(sort)注意事項(xiàng)進(jìn)行了說(shuō)明介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01

