利用TweenMax針對HTML頁面製作動畫 – CSS篇
前一篇文章跟大家分享了如何利用TweenMax在HTML裡面製作基礎的動畫,接下來示範如何利用TweenMax來控制CSS的效果,當然前置作業跟之前相同,這邊就不多提,但在TweenMax內需加上CSS的控制項目,大致的語法如下:
TweenMax.to(物件,動畫秒數,{css:{樣式名稱:值},ease:動畫模式});
其實跟前篇文章大致相同,只是在動畫的部分要利用「css:{}」這段語法來包含欲更改的樣式,以下是更改寬度和高度的範例:
TweenMax.to(div,1,{css:{width:100, height:200},ease:Expo.easeOut});
接下來為各位示範一下在網頁上製作動畫的範例,這是第一個範例,主要為Div移動的效果,下面是本範例整個網頁的程式碼:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>GreenSock HTMLTweening CSS Move</title> <style type="text/css"> #box { height: 200px; width: 200px; position: absolute; background-color: #9CF; } /* box div 的樣式 */ </style> <script src="src/minified/TweenMax.min.js"></script> <script language="javascript"> window.onload = moveFn; function moveFn() { var div = document.getElementById("box"); /* 利用div變數儲存ID名稱為box的物件 */ var divX = "0px" /* 利用變數儲存div預設的x位置 */ var divY = window.innerHeight / 2 - 100 + "px"; /* 利用變數儲存div預設的y位置 */ var moveX = window.innerWidth / 2 - 100 + "px" div.style.left = divX div.style.top = divY TweenMax.to(div, 1, { css: { left: moveX }, ease: Expo.easeOut }); } </script> </head> <body style="background-color:#FFF"> <div id="box"></div> </body> </html>
延續上面,接下來第二個範例程式碼大致與上面相同,只是增加了div變形和旋轉的效果,可以看得出來除了CSS本身的樣式之外,還可以利用TweenMax所提供的scale和rotation來製作動畫,下面是本範例整個網頁的程式碼:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>GreenSock HTMLTweening CSS Move</title> <style type="text/css"> #box { height: 200px; width: 200px; position: absolute; background-color: #9CF; } /* box div 的樣式 */ </style> <script src="src/minified/TweenMax.min.js"></script> <script language="javascript"> window.onload = moveFn; function moveFn() { var div = document.getElementById("box"); /* 利用div變數儲存ID名稱為box的物件 */ var divX = "0px" /* 利用變數儲存div預設的x位置 */ var divY = window.innerHeight / 2 - 100 + "px"; /* 利用變數儲存div預設的y位置 */ var moveX = window.innerWidth / 2 - 100 + "px" div.style.left = divX div.style.top = divY TweenMax.to(div, 1, { css: { left: moveX }, ease: Expo.easeOut }); TweenMax.to(div, 1, { css: { scale: 2, rotation: 90 }, delay: 1, ease: Expo.easeOut }); } </script> </head> <body style="background-color:#FFF"> <div id="box"></div> </body> </html>
接下來第三個案例加上了更換背景顏色的部分,背景顏色更換的部分,要注意語法跟css的背景顏色樣式名稱有所不同,下面是本範例整個網頁的程式碼:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>GreenSock HTMLTweening CSS Move</title> <style type="text/css"> #box { height: 200px; width: 200px; position: absolute; background-color: #9CF; } /* box div 的樣式 */ </style> <script src="src/minified/TweenMax.min.js"></script> <script language="javascript"> window.onload = moveFn; function moveFn() { var div = document.getElementById("box"); /* 利用div變數儲存ID名稱為box的物件 */ var divX = "0px" /* 利用變數儲存div預設的x位置 */ var divY = window.innerHeight / 2 - 100 + "px"; /* 利用變數儲存div預設的y位置 */ var moveX = window.innerWidth / 2 - 100 + "px" div.style.left = divX div.style.top = divY TweenMax.to(div, 1, { css: { left: moveX }, ease: Expo.easeOut }); TweenMax.to(div, 1, { css: { scale: 2, rotation: 90 }, delay: 1, ease: Expo.easeOut }); TweenMax.to(div, 3, { css: { backgroundColor: "#EEEEEE" }, delay: 2, ease: Expo.easeOut }); } </script> </head> <body style="background-color:#FFF"> <div id="box"></div> </body> </html>
接下來第四個案例是利用TimelineMax來輔助製作這段動畫,可以看的出來上面範例都在使用delay來決定動畫播放順序,但在前面的文章中有提到TimelineMax可以協助我們來掌握動畫播放的順序,所以本範例更改為利用TimelineMax來製作動畫,下面是本範例整個網頁的程式碼:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>GreenSock HTMLTweening CSS Move</title> <style type="text/css"> #box { height: 200px; width: 200px; position: absolute; background-color: #9CF; } /* box div 的樣式 */ </style> <script src="src/minified/TweenMax.min.js"></script> <script language="javascript"> window.onload = moveFn; function moveFn() { var div = document.getElementById("box"); /* 利用div變數儲存ID名稱為box的物件 */ var divX = "0px" /* 利用變數儲存div預設的x位置 */ var divY = window.innerHeight / 2 - 100 + "px"; /* 利用變數儲存div預設的y位置 */ var moveX = window.innerWidth / 2 - 100 + "px" div.style.left = divX div.style.top = divY var tMax = new TimelineMax; tMax.to(div, 1, { css: { left: moveX }, ease: Expo.easeOut }); tMax.to(div, 1, { css: { scale: 2, rotation: 90 }, ease: Expo.easeOut }); tMax.to(div, 3, { css: { backgroundColor: "#EEEEEE" }, ease: Expo.easeOut }); } </script> </head> <body> <div id="box"></div> </body> </html>
看了上面的幾個案例之後,在這邊也來製作幾個比較完整的範例供大家參考,首先是第一個範例,利用文字連結來更換div內容的效果,下面是本範例整個網頁的程式碼:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>GreenSock HTMLTweening CSS Sample 1</title> <style type="text/css"> * { padding: 0px; margin: 0px; } body { font-size: 13px; } #box { height: 450px; width: 600px; margin-left: auto; margin-right: auto; background-color: #EEE; } /* box div 的樣式 (內容div) */ #content { padding: 10px 10px 0px 10px; line-height: 26px; width: 500px; margin-left: auto; margin-right: auto; } /* content div 的樣式 (內容p) */ #btn { height: 30px; width: 600px; text-align: center; margin-left: auto; margin-right: auto; padding-top: 10px; } #btn a { margin: 5px; } /* btn div 的樣式 (下方文字連結div) */ </style> <script src="src/minified/TweenMax.min.js"></script> <script language="javascript"> var intro1 = "<p style='text-align:center;'><img src='ford/p1.jpg' style='border:1px solid #000; background-color:#FFFFFF'></p><p>全新導入的運動模式(S-Mode),讓變速箱升檔時機往後遞延,以維持較高的引擎轉速再進行換檔,充分提升駕駛加速感受。在中高速行駛時,運動模式可提供更及時的降檔反應,使引擎仍可保持在扭力峰值的轉速範圍內,同時讓動力輸出對油門的反應更加靈敏,整體引擎動力的運動性大幅提升,創造最動感的馳騁體驗。</p>"; var intro2 = "<p style='text-align:center;'><img src='ford/p2.jpg' style='border:1px solid #000; background-color:#FFFFFF'></p><p>高科技的雙離合器變速箱擁有自排、手排、上坡、下坡、高海拔修正、怠速、斜坡潛滑減緩、緊急安全八大模式。以手排齒輪箱為基礎,搭配平行排列濕式雙離合器機構,能在極短時間內完成換檔,沒有傳統自排變速箱的扭力頓挫感,加速也更加敏捷平順,且操作介面與傳統自排一樣簡易方便。</p>"; var intro3 = "<p style='text-align:center;'><img src='ford/p3.jpg' style='border:1px solid #000; background-color:#FFFFFF'></p><p>全新高傳真CD/MP3/WMA音響主機,具備DSP數位音場設定、Clip失真檢測功能、智慧型音量控制、高傳真音效調整、AST電台頻道自動掃描儲存功能、位於中央扶手中AUX-IN功能的孔狀插槽與USB插槽(包含一般MP3裝置與iPod主機連結功能),是目前同等級房車中與iPod整合性最高的機種。</p>"; /* 以上為利用三個變數儲存不同的網頁內容 */ window.onload = moveFn; /* 網頁載入時執行moveFn */ function moveFn() { var div = document.getElementById("box"); /* 利用div變數儲存ID名稱為box的物件 */ var intro = document.getElementById("content"); /* 利用intro變數儲存ID名稱為content的物件 */ intro.innerHTML = intro1; /* 設定content的div內容為第一個連結的內容 */ var tMax = new TimelineMax; tMax.from(div, 0.5, { css: { scale: 0 }, ease: Expo.easeOut }); tMax.from(intro, 1, { css: { alpha: 0 } }); /* 以動畫的方式呈現內容 */ } function changeFn(no) { var div = document.getElementById("box"); /* 利用div變數儲存ID名稱為box的物件 */ var intro = document.getElementById("content"); /* 利用intro變數儲存ID名稱為content的物件 */ var tMax = new TimelineMax; tMax.to(intro, 0, { css: { alpha: 0 } }); tMax.to(div, 0.5, { css: { scale: 0 }, ease: Expo.easeOut }); tMax.to(div, 0.5, { css: { scale: 1 }, ease: Expo.easeOut }); tMax.to(intro, 1, { css: { alpha: 1 } }); switch (no) { case 1: intro.innerHTML = intro1; break; case 2: intro.innerHTML = intro2; break; case 3: intro.innerHTML = intro3; break; } } </script> </head> <body style="background-color:#FFF"> <div id="box"> <p id="content"></p> </div> <div id="btn"><a href="javascript:;" onClick="changeFn(1)">運動模式</a><a href="javascript:;" onClick="changeFn(2)">雙離合器</a><a href="javascript:;" onClick="changeFn(3)">整合音響</a></div> </body> </html>
接下來的範例是利用TweenMax來設計讓一個div永遠保持在畫面左邊中間的效果,下面是本範例整個網頁的程式碼:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>GreenSock HTMLTweening CSS Sample 2</title> <script src="src/minified/TweenMax.min.js"></script> <script language="javascript"> window.onload = init; //網頁載入時執行init window.onscroll = init; //捲動網頁時執行init window.onresize = init; //網頁更改尺寸時執行init function init(){ var div=document.getElementById("bannerDiv"); //利用div變數儲存網頁上ID為bannerDiv的物件(即為放圖片的Div) var banner=document.getElementById("tweenMax"); //利用banner變數儲存網頁上ID為tweenMax的物件(即為圖片本身) positionY= window.innerHeight/2-banner.height+window.pageYOffset; //利用PositionY儲存在畫面中Div應該出現的座標位置 TweenMax.to(div,1,{css:{top:positionY},ease:Elastic.easeOut}); //利用TweenMax將Div移動到上面所儲存的位置 } </script> <style type="text/css"> #bannerDiv { height: 54px; width: 108px; position: absolute; } </style> </head> <body style="background-color:#FFF"> <div id="bannerDiv"><img src="mw_tweenmax.gif" name="tweenMax" width="108" height="54" id="tweenMax" /></div> <div style="width:400px; height:2000px; background-color:#EEE; margin-left:auto; margin-right:auto; font-size:13px; text-align:center"> 網頁內容</div> </body> </html>
看完了上面幾個範例之後,相信大家可以利用TweenMax搭配HTML和Javascript來取代更多需要Flash才可以完成的效果了,祝大家設計順利!
Son Heung Min https://son-heung-min.prostoprosport-cz.org Jihokorejsky fotbalista, utocnik a kapitan anglickeho klubu Premier League Tottenham Hotspur a narodniho tymu Korejske republiky. V roce 2022 vyhral Zlatou kopacku Premier League.
Pablo Martin Paez Gavira https://gavi.prostoprosport-cz.org Spanelsky fotbalista, zaloznik barcelonskeho klubu a spanelske reprezentace. Povazovan za jednoho z nejtalentovanejsich hracu sve generace. Ucastnik mistrovstvi sveta 2022. Vitez Ligy narodu UEFA 2022/23
https://www.521zixuan.com/space-uid-770619.html
Antoine Griezmann https://antoine-griezmann.prostoprosport-cz.org Francouzsky fotbalista, utocnik a zaloznik za Atletico de Madrid. Hrac a vicekapitan francouzskeho narodniho tymu, clen tymu – mistr sveta 2018 Stribrny medailista z mistrovstvi Evropy 2016 a mistrovstvi sveta 2022.
Bernardo Silva https://bernardo-silva.prostoprosport-cz.org Portugalsky fotbalista, zaloznik. Narozen 10. srpna 1994 v Lisabonu. Silva je povazovan za jednoho z nejlepsich utocnych zalozniku na svete. Fotbalista je povestny svou vytrvalosti a vykonem.
Lionel Messi https://lionel-messi.prostoprosport-cz.org je argentinsky fotbalista, utocnik a kapitan klubu MLS Inter Miami. , kapitan argentinske reprezentace. Mistr sveta, vitez Jizni Ameriky, vitez finale, olympijsky vitez. Povazovan za jednoho z nejlepsich fotbalistu vsech dob.
Как правильно подобрать материал для перетяжки мебели: профессиональные советы и рекомендации, для достижения идеального результата.
Модные тренды в перетяжке мебели: что выбрать в этом сезоне, для создания неповторимого облика вашего дома.
Перетяжка мебели своими руками: идеи для творческого подхода, для создания уютной и гармоничной обстановки.
Зачем стоит обратить внимание на перетяжку мебели: основные преимущества и выгоды, чтобы ваш дом стал уютным и уникальным.
Экспертные советы по выбору мастера для перетяжки мебели: на что обратить внимание, для успешного завершения вашего проекта.
Какие материалы выбрать для перетяжки мебели в стиле минимализм: легкие и стильные способы, для создания функционального и современного интерьера.
Секреты перетяжки мебели в скандинавском стиле: как создать атмосферу комфорта, которые добавят вашему дому теплоту и гармонию.
Перетяжка мебели: высокое качество и доступная цена, которые позволят вам обновить интерьер без лишних затрат.
Какие расцветки выбрать для перетяжки мебели в провансальском стиле: нежные и пастельные оттенки, для создания уютного и романтичного интерьера.
Какие детали учесть для перетяжки мебели в классическом стиле: изысканные и шикарные элементы, которые добавят вашему дому роскошь и утонченность.
Как сделать перетяжку мебели качественно и без лишних хлопот: лайфхаки и советы, которые помогут вам сделать правильный выбор и избежать ошибок.
перетяжка мягкой мебели мебели перетяжка мебели .
Robert Lewandowski https://robert-lewandowski.prostoprosport-cz.org je polsky fotbalista, utocnik spanelskeho klubu Barcelona a kapitan polskeho narodniho tymu. Povazovan za jednoho z nejlepsich utocniku na svete. Rytir krize velitele polskeho renesancniho radu.
Kevin De Bruyne https://kevin-de-bruyne.prostoprosport-cz.org Belgicky fotbalista, zaloznik Manchesteru klub City” a belgicky narodni tym. Absolvent fotbalovych klubu „Ghent” a „Genk”. V roce 2008 zahajil svou karieru dospelych, debutoval v Genku.
Mohamed Salah https://mohamed-salah.prostoprosport-cz.org je egyptsky fotbalista, ktery hraje jako utocnik za anglictinu. klub Liverpool a egyptsky narodni tym. Povazovan za jednoho z nejlepsich fotbalistu na svete.
Vinicius Jose Paixan de Oliveira Junior vinicius-junior.prostoprosport-cz.org bezne znamy jako Vinicius Junior je brazilsky a spanelsky fotbalista , utocnik klubu Real Madrid a brazilsky reprezentant.
buy cyclophosphamide without prescription – purchase zerit vastarel without prescription
Harry Kane https://harry-kane.prostoprosport-cz.org dostal pozvanku do anglickeho tymu nezletilych jako prvni cas 17. na turnaj mladeze v Portugalsku. Utocnik se zaroven kvuli vazne nemoci neobjevil na triumfalnim mistrovstvi Evropy muzu do 17 let 2010 pro Brity.
Kylian Mbappe Lotten https://kylian-mbappe.prostoprosport-cz.org Francouzsky fotbalista, utocnik Paris Saint-Germain a kapitan tymu francouzskeho tymu. 1. cervence 2024 se stane hracem spanelskeho klubu Real Madrid.
Erling Breut Haaland https://erling-haaland.prostoprosport-cz.org je norsky fotbalista, ktery hraje jako utocnik za Anglicky klub Manchester City a norska reprezentace. Rekordman anglicke Premier League v poctu golu za sezonu.
Jude Victor William Bellingham https://jude-bellingham.prostoprosport-cz.org anglicky fotbalista, zaloznik spanelskeho klubu Real Madrid a anglicky narodni tym. V dubnu 2024 ziskal cenu za prulom roku z Laureus World Sports Awards. Stal se prvnim fotbalistou, ktery ji obdrzel.
Edson Arantes do Nascimento https://pele.prostoprosport-br.com Brazilian footballer, forward (attacking midfielder. Played for Santos clubs) and New York Cosmos. Played 92 matches and scored 77 goals for the Brazilian national team.
Neymar da Silva Santos Junior https://neymar.prostoprosport-br.com e um futebolista brasileiro que atua como atacante, ponta e atacante. meio-campista do clube saudita Al-Hilal e da selecao brasileira. Considerado um dos melhores jogadores do mundo. O maior artilheiro da historia da Selecao Brasileira.
https://images.google.is/url?q=https://zenwriting.net/northtanker89/crystal-clear-the-ultimate-guide-to-auto-glass-replacement
Thomas Mueller https://thomasmueller.prostoprosport-br.com is a German football player who plays for the German Bayern Munich. Can play in different positions – striker, attacking midfielder. The most titled German footballer in history
Romelu Menama Lukaku Bolingoli https://romelulukaku.prostoprosport-br.com Futebolista belga, atacante do clube ingles Chelsea e da selecao belga . Por emprestimo, ele joga pelo clube italiano Roma.
Roberto Carlos da Silva Rocha https://roberto-carlos.prostoprosport-br.com Brazilian footballer, left back. He was also capable of playing as both a central defender and a defensive midfielder. World champion 2002, silver medalist at the 1998 World Championships.
http://www.chongyoushe.com/home.php?mod=space&uid=234083
Victor James Osimhen https://victor-osimhen.prostoprosport-br.com e um futebolista nigeriano que atua como atacante. O clube italiano Napoli e a selecao nigeriana.
конференц зал оборудование конференц зал оборудование .
Virgil van Dijk https://virgilvandijk.prostoprosport-br.com Futebolista holandes, zagueiro central, capitao do clube ingles Liverpool e capitao do a selecao holandesa.
Играй и выигрывай в 1win казино, зарабатывай деньги.
Увлекательные слоты в 1win казино, подарят незабываемый опыт.
1win казино – это возможность испытать удачу, играй и получай удовольствие.
Разгадай тайны удачи с 1win казино, становись миллионером.
1win казино – место, где рождаются победы, получай невероятные эмоции.
Наслаждайся азартом без ограничений в 1win казино, становись победителем.
1win казино – это место, где рождаются чемпионы, претворить свои мечты в реальность.
Богатство и успех с 1win казино, сталкивайся с удачей и побеждай.
1win зеркало https://luchshiye-onlayn-kazino-rb.com/ .
Antoine Griezmann https://antoine-griezmann.prostoprosport-br.com Futebolista frances, atacante e meio-campista do Atletico de Madrid. Jogador e vice-capitao da selecao francesa, integrante da selecao – campea mundial 2018. Medalhista de prata no Europeu de 2016 e no Mundial de 2022.
Ederson Santana de Moraes https://edersonmoraes.prostoprosport-br.com Futebolista brasileiro, goleiro do clube Manchester City e da Selecao Brasileira . Participante do Campeonato Mundial 2018. Bicampeao de Portugal pelo Benfica e pentacampeao de Inglaterra pelo Manchester City.
Откройте дверь к лучшей версии себя –
кликните по линку на %D0%9E%D0%9F%D0%A1%D0%A3%D0%98%D0%9C%D0%9E%D0%9B%D0%9E%D0%93