国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript 創(chuàng)建運(yùn)動框架的實現(xiàn)代碼

2024-05-06 15:47:51
字體:
供稿:網(wǎng)友
本篇文章是對,在JavaScript中創(chuàng)建運(yùn)動框架的實現(xiàn)方法進(jìn)行了介紹。需要的朋友參考下

封裝好的運(yùn)動框架Move(obj,attr,iTarget),可直接調(diào)用:

可用于設(shè)置width、border、fontSize、marginLeft、opacity等許多常見屬性值的變速變化,實現(xiàn)各種有趣效果。

兼容IE和FF。

復(fù)制代碼 代碼如下:


/****************
*
* IE-BUG:
* 在IE中,設(shè)置opacity屬性時,元素樣式中需要設(shè)置opacity屬性,才能讀取到opacity值。
*
* obj:元素對象。 attr:用引號包圍的屬性名。 iTarget:屬性目標(biāo)值。
*
*****************/


function Move(obj,attr,iTarget){
clearInterval(obj.timer);//關(guān)閉前一個定時器,解決對同個對象同時調(diào)用多個Move()時,定時器疊加問題。使用obj.timer給每個調(diào)用Move()的對象賦予各自的定時器,防止多個對象同時調(diào)用Move()時,同用一個定時器,而導(dǎo)致相關(guān)干擾問題。
obj.timer=setInterval(function(){
var cur=0;//創(chuàng)建一個變量,用于存儲 attr屬性每時每刻的值
if(attr=="opacity"){
//針對在FF中opacity屬性值為浮點數(shù)值問題,將屬性值 四舍五入、轉(zhuǎn)換成浮點型。乘以100,使opacity屬性值與IE統(tǒng)一為百分?jǐn)?shù)
cur=Math.round(parseFloat(getStyle(obj,attr))*100);
}else{
cur=parseInt(getStyle(obj,attr));//將除opacity外的屬性(width/fontSize/MarginLeft等)的初始值 轉(zhuǎn)換為整型
}
var speed=(iTarget-cur)/10;//創(chuàng)建 遞減的速度speed變量。實現(xiàn)屬性值的變速改變

speed=speed>0?Math.ceil(speed):Math.floor(speed);//取整,解決瀏覽器忽略小于1px的數(shù)值 導(dǎo)致運(yùn)動結(jié)束時,離目標(biāo)值Itarget少幾個像素的問題

if(iTarget==cur){//當(dāng)目標(biāo)值等于目標(biāo)值時,結(jié)束定時器
clearInterval(obj.timer);
}else{
cur+=speed;//當(dāng)前值cur 加上 遞減的速度值speed
if(attr=="opacity"){
// 分別對IE和FF設(shè)置opacity屬性值
obj.style.filter="alpha(opacity:"+cur+")"; //for IE
obj.style.opacity=cur/100; //for FF
}else{
obj.style[attr]=cur+"px"; //給指定屬性attr 添加值cur+speed
}
}
},30);
}
//getStyle()函數(shù) 用于兼容IE和FF:獲取 對象的 非行間樣式中的屬性的值。 obj:元素對象。 name:屬性名。
function getStyle(obj,name){
if(obj.currentStyle){
return obj.currentStyle[name];//for IE
}else{
return getComputedStyle(obj,false)[name];//for FF
}
}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 昌平区| 桐城市| 五常市| 安徽省| 普安县| 泗阳县| 南昌县| 阿瓦提县| 顺昌县| 贵德县| 香港 | 广宗县| 时尚| 青田县| 宜宾市| 泽普县| 马龙县| 余江县| 武邑县| 屯门区| 石棉县| 鄂尔多斯市| 阜新市| 巩留县| 高淳县| 龙岩市| 明光市| 宣城市| 青田县| 本溪市| 平罗县| 永兴县| 武强县| 云南省| 兰西县| 阳东县| 伊吾县| 耒阳市| 九台市| 汝阳县| 依安县|