這篇文章主要介紹JavaScript運(yùn)動(dòng)框架之多值運(yùn)動(dòng)的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯(lián)是專(zhuān)業(yè)的鄞州網(wǎng)站建設(shè)公司,鄞州接單;提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行鄞州網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!多值運(yùn)動(dòng),也就是對(duì)于某個(gè)對(duì)象來(lái)說(shuō),不僅僅只是其中一個(gè)屬性值在變化,而是好多個(gè),比如寬,高,字體,透明度等等同時(shí)變化
當(dāng)然了,多值運(yùn)動(dòng)會(huì)產(chǎn)生一個(gè)問(wèn)題,就是定時(shí)器何時(shí)關(guān)閉的問(wèn)題!當(dāng)然是所有的屬性值都運(yùn)動(dòng)到目標(biāo)值了才能清理定時(shí)器,也就是等最慢的。就好比十個(gè)人一起聚餐,不能等到來(lái)一個(gè)人就開(kāi)吃!
前幾篇講的都是一個(gè)元素對(duì)象中某一個(gè)屬性的運(yùn)動(dòng),這次講同一個(gè)元素對(duì)象中多個(gè)屬性值的緩沖運(yùn)動(dòng),那么每個(gè)屬性都有個(gè)終點(diǎn)(目標(biāo)點(diǎn)),我們把這些屬性及其目標(biāo)值寫(xiě)成一個(gè)對(duì)象的形式,或者是json狀!容易產(chǎn)生的問(wèn)題就是上面說(shuō)的,這里用了共同的速度函數(shù),但有的屬性值從100 –> 101, 有的屬性值從100 –> 600,你得等耗時(shí)最長(zhǎng)的屬性值到達(dá)目標(biāo)值才能關(guān)閉該obj所擁有的定時(shí)器,設(shè)計(jì)的思路就是每次執(zhí)行輪詢(xún)函數(shù)設(shè)置一個(gè)bStob = true;在遍歷掃描json中屬性的時(shí)候,只要有沒(méi)到到目標(biāo)值的屬性,就設(shè)為false,這樣定時(shí)器就不會(huì)關(guān)閉,即使有的屬性值已經(jīng)到達(dá)終點(diǎn),此時(shí)輪詢(xún)依舊會(huì)執(zhí)行掃描,只不過(guò)此時(shí)該屬性運(yùn)動(dòng)速度為0了,也不會(huì)運(yùn)動(dòng)了。也就是之前:
if(attr == cur) { cleartInterval(obj.timer); }
要增強(qiáng)為:
if (bStop) { clearInterval(obj.timer); }
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>運(yùn)動(dòng)框架(四):多值運(yùn)動(dòng)</title> <style type="text/css"> div { width: 100px; height: 100px; background: orange; margin: 10px; float: left; } </style> </head> <body> <div id="div1"></div> <script type="text/javascript"> var oDiv = document.getElementById('div1'); oDiv.onmouseover = function() { var json = { width: 600, height: 200, opacity: 30 }; startMove(this, json); }; oDiv.onmouseout = function() { var json = { width: 100, height: 100, opacity: 100 }; startMove(this, json); }; function getStyle(obj, attr) { if (obj.currentStyle) { return obj.currentStyle[attr]; } else { return getComputedStyle(obj, false)[attr]; } } function startMove(obj, json) { clearInterval(obj.timer); obj.timer = setInterval(function() { var bStop = true; for (var attr in json) { var cur = 0; if (attr === 'opacity') { cur = Math.round(parseFloat(getStyle(obj, attr)) * 100); } else { cur = parseInt(getStyle(obj, attr)); } var speed = (json[attr] - cur) / 10; speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); if (cur != json[attr]) {//凡是有未到達(dá)目標(biāo)點(diǎn)的,一律不讓定時(shí)器停下,否則有的屬性不能到達(dá)目標(biāo)值 bStop = false; } if (attr === 'opacity') { cur += speed; obj.style.filter = 'alpha(opacity:' + cur + ')'; obj.style.opacity = cur / 100;//Chrome,IE } else { obj.style[attr] = cur + speed + 'px'; } } //整個(gè)循環(huán)結(jié)束后,仍然保持著true,說(shuō)明沒(méi)有沒(méi)到達(dá)目標(biāo)值的屬性,也就是都到了 if (bStop) { clearInterval(obj.timer);//說(shuō)明所有的屬性都到達(dá)了目標(biāo)值 } }, 30); } </script> </body> </html>
以上是“JavaScript運(yùn)動(dòng)框架之多值運(yùn)動(dòng)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站aaarwkj.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站名稱(chēng):JavaScript運(yùn)動(dòng)框架之多值運(yùn)動(dòng)的示例分析-創(chuàng)新互聯(lián)
URL地址:http://aaarwkj.com/article36/cdhipg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、標(biāo)簽優(yōu)化、域名注冊(cè)、品牌網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)公司、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容