摘要:今天這篇文章主要簡(jiǎn)述如何通過(guò)改變屬性來(lái)實(shí)現(xiàn)動(dòng)畫(huà)效果,比如通過(guò)定時(shí)器快速改變等屬性,實(shí)現(xiàn)圖形在的頁(yè)面上做勻速的運(yùn)動(dòng)。
今天這篇文章主要簡(jiǎn)述js如何通過(guò)改變屬性來(lái)實(shí)現(xiàn)動(dòng)畫(huà)效果,比如通過(guò)定時(shí)器快速改變width, height, left, top等屬性,實(shí)現(xiàn)圖形在html的頁(yè)面上做勻速的運(yùn)動(dòng)。
現(xiàn)在就有這樣的一個(gè)需求,定義2個(gè)不同背景顏色的物體,當(dāng)點(diǎn)擊按鈕的時(shí)候,實(shí)現(xiàn)向左,向下勻速
運(yùn)動(dòng)。
關(guān)鍵語(yǔ)法:
1,獲取當(dāng)前dom的指定屬性值
function computedStyle(dom,attr) { if(getComputedStyle) { return getComputedStyle(dom,"")[attr] } else { return dom.currentStyle()[attr] //兼容IE } }
這個(gè)方法定義的目的是為了獲取dom 屬性的值,例如:
dom: "
2,定時(shí)器,返回這個(gè)定時(shí)器的唯一id標(biāo)識(shí)
timerId = setInterval(function(){ },1000);
這個(gè)定時(shí)器的主要目的是為了勻速改變dom的屬性的值
示例:
#box{ width: 100px; height: 100px; background: red; position:absolute; /*getComputedStyle 方法取屬性左邊的值"left" 為800*/ left: 800px; top: 50px; } #box1{ width: 100px; height: 100px; background: blue; position:absolute; left: 900px; top: 50px; }boxbox1//封裝獲取id的方法 function $(id) { return document.getElementById(id); } //獲取計(jì)算后的屬性 attr="width" function computedStyle(dom,attr) { if(getComputedStyle) { return getComputedStyle(dom,"")[attr] } else { return dom.currentStyle()[attr] } } window.onload=function(){ var btn=$("button"); var box=$("box"); var box1=$("box1"); btn.onclick=function(){ animate(box,"left",100); animate(box1,"top",400); } function animate(dom,attr,target){ //多個(gè)元素一起運(yùn)動(dòng) 每個(gè)元素綁定一個(gè)屬性放當(dāng)前運(yùn)動(dòng)的定時(shí)器 dom.timer=setInterval(function() { var current=parseInt(computedStyle(dom,attr)); var step=(target>current)?1:-1; /*目標(biāo)大于當(dāng)前值 +1 目標(biāo)小于當(dāng)前值-1*/ if(target==current) { // 如果等于100的時(shí)候退出,也是定時(shí)器退出的條件 dom.style[attr]=target+"px"; clearInterval(dom.timer); return false; } //改變位置 dom.style[attr]=(current+step)+"px"; //改變style的屬性,實(shí)現(xiàn)動(dòng)畫(huà) },10) //每10毫秒改變一次 } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/90785.html
摘要:動(dòng)畫(huà)占用大量?jī)?nèi)存,如何優(yōu)化使用動(dòng)畫(huà)的注意事項(xiàng)有哪些問(wèn)題這個(gè)問(wèn)題主要出現(xiàn)在幀動(dòng)畫(huà)中,當(dāng)圖片數(shù)量較多且圖片較大時(shí)就極易出現(xiàn),這個(gè)在實(shí)際開(kāi)發(fā)中要尤其注意,盡量避免使用幀動(dòng)畫(huà)。 目錄介紹 4.0.0.1 Android中有哪幾種類(lèi)型的動(dòng)畫(huà),屬性動(dòng)畫(huà)和補(bǔ)間動(dòng)畫(huà)有何區(qū)別?補(bǔ)間動(dòng)畫(huà)和屬性動(dòng)畫(huà)常用的有哪些? 4.0.0.2 View動(dòng)畫(huà)為何不能真正改變View的位置?而屬性動(dòng)畫(huà)為何可以?屬性動(dòng)畫(huà)是如...
摘要:今天這篇文章主要簡(jiǎn)述如何通過(guò)改變屬性來(lái)實(shí)現(xiàn)動(dòng)畫(huà)效果,比如通過(guò)定時(shí)器快速改變等屬性,實(shí)現(xiàn)圖形在的頁(yè)面上做勻速的運(yùn)動(dòng)。 今天這篇文章主要簡(jiǎn)述js如何通過(guò)改變屬性來(lái)實(shí)現(xiàn)動(dòng)畫(huà)效果,比如通過(guò)定時(shí)器快速改變width, height, left, top等屬性,實(shí)現(xiàn)圖形在html的頁(yè)面上做勻速的運(yùn)動(dòng)。 現(xiàn)在就有這樣的一個(gè)需求,定義2個(gè)不同背景顏色的物體,當(dāng)點(diǎn)擊按鈕的時(shí)候,實(shí)現(xiàn)向左,向下勻速運(yùn)動(dòng)。 ...
摘要:今天這篇文章主要簡(jiǎn)述如何通過(guò)改變屬性來(lái)實(shí)現(xiàn)動(dòng)畫(huà)效果,比如通過(guò)定時(shí)器快速改變等屬性,實(shí)現(xiàn)圖形在的頁(yè)面上做勻速的運(yùn)動(dòng)。 今天這篇文章主要簡(jiǎn)述js如何通過(guò)改變屬性來(lái)實(shí)現(xiàn)動(dòng)畫(huà)效果,比如通過(guò)定時(shí)器快速改變width, height, left, top等屬性,實(shí)現(xiàn)圖形在html的頁(yè)面上做勻速的運(yùn)動(dòng)。 現(xiàn)在就有這樣的一個(gè)需求,定義2個(gè)不同背景顏色的物體,當(dāng)點(diǎn)擊按鈕的時(shí)候,實(shí)現(xiàn)向左,向下勻速運(yùn)動(dòng)。 ...
閱讀 3570·2021-11-16 11:45
閱讀 2129·2021-11-08 13:23
閱讀 2223·2021-10-11 10:59
閱讀 2900·2021-09-27 13:36
閱讀 2489·2019-08-30 15:54
閱讀 2679·2019-08-29 16:58
閱讀 2797·2019-08-29 16:56
閱讀 1347·2019-08-26 13:52