<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
運動函數是我們自己封裝的一個函數。
作用是將css樣式的改變不是一次性完成 是 逐步完成 執行效果 看上去 像是 動畫/運動 完成的css樣式改變。
實際專案中框架等都有自己的運動函數我們目前封裝一個簡單的相容多屬性的運動函數。
運動函數部分:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * { margin: 0; padding: 0; } div { width: 100px; height: 100px; background: rgb(231, 12, 48); margin: 0 auto; opacity: 0.3; /* transition: 3s; */ } p { width: 100px; height: 100px; background: black; position: fixed; top: 200px; left: 50px; } </style> </head> <body> <button>點選</button> <div></div> <script> var oDiv = document.querySelector('div'); var oBtn = document.querySelector('button'); var oP = document.querySelector('p') oBtn.addEventListener('click',function(){ move(oDiv,{width:1800,height:900,opacity:1} , function(){ oDiv.style.background = 'black' } ); }) // 運動函數命名 // move 運動函數 // @param object element 要執行運動函數的標籤物件 // @param object object 要執行運動的css屬性 和 最終數值 // @param function callback 運動結束執行的回撥函數 // 預設值是空函數 function move(element, object, callback = function () { }) { // 定義變數儲存定時器個數 let num = 0; // 迴圈遍歷引數二(object) // 使用 for...in 迴圈 使用 let 定義變數 for (let type in object){ // type 是 引數2物件的屬性 也就是 要運動的css樣式的屬性 // object[type] 是 引數2物件的屬性值 也就是 要運動的css樣式的 最終數值 // 定時器數量加一 num++; // 開始數值,也就是獲取的原始數值,相容透明度寫法 let startVal = (type === 'opacity') ? window.getComputedStyle(element)[type] * 100 : parseInt(window.getComputedStyle(element)[type]); // 結束數值,也就是輸入的屬性對應的屬性值,相容透明度寫法 let endVal = (type === 'opacity') ? object[type] * 100 : object[type]; // 定時器開始,time記錄定時器編號 let time = setInterval( function () { // 設定步長值= 結束數值 - 開始數值 / 10 let step = (endVal - startVal) / 10; // 如果步長值大於0 就向上取整,反之則向下取整 step = step > 0 ? Math.ceil(step) : Math.floor(step); // 將初始值 += 步長值 再把新值賦值給初始值 startVal += step; // 將新的步長值 賦值給 標籤物件的css樣式 相容 透明度 element.style[type] = (type === 'opacity') ? startVal / 100 : startVal + 'px'; // 如果初始值等於最終值 if (startVal === endVal) { // 清除定時器 clearInterval(time); // 變數 累減1 也就是 少了一個執行的定時器 // num--; // 當執行的定時器為0 時,所有定時器都清除了 if (num === 0) { callback(); } } }, 20) } } </script> </body> </html>
執行結果:
本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注it145.com的更多內容!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45