利用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才可以完成的效果了,祝大家設計順利!
TadalafilEasyBuy.com cialis without a doctor prescription Tadalafil Easy Buy
https://generic100mgeasy.com/# buy generic 100mg viagra online
Печать рекламных буклетов https://tipografiya-buklety.ru ярко, качественно, профессионально. Форматы A4, евро, индивидуальные размеры. Работаем с частными и корпоративными заказами.
I know this if off topic but I’m looking into starting my own weblog
and was curious what all is needed to get setup? I’m assuming having a blog like yours would cost a pretty
penny? I’m not very web savvy so I’m not 100% sure.
Any suggestions or advice would be greatly appreciated.
Appreciate it
http://generic100mgeasy.com/# Generic100mgEasy
Officiele Kamagra van Nederland: kamagra pillen kopen – kamagra kopen nederland
Generic100mgEasy: Generic 100mg Easy – Generic100mgEasy
https://tadalafileasybuy.shop/# Buy Tadalafil 5mg
Откройте для себя мир ставок с 1xbet, уже сегодня.
1xbet – ваши ставки под контролем, используйте.
Уникальные бонусы от 1xbet, обязательно проверьте.
Скорее ставьте на свои любимые команды с 1xbet, от игры.
Присоединяйтесь к 1xbet для живых ставок, вы всегда на шаг впереди.
1xbet предлагает широкую линейку ставок, свои стратегии.
На 1xbet найдётся ставку для каждого, от любимых команд до редких событий.
1xbet – живые трансляции ваших любимых матчей, погрузитесь в атмосферу.
Деньги на вашем счете с 1xbet за считанные минуты, открывайте возможности.
Получите инсайдерскую информацию с 1xbet, будьте всегда на шаг впереди.
Ставьте с уверенностью на 1xbet, это важно.
Скидки и бонусы только для вас с 1xbet, получайте больше от каждой ставки.
Ставьте смело с 1xbet, это ваш шанс на успех.
Получите помощь в любое время на 1xbet, никогда не оставайтесь в одиночестве.
1xbet – это не только ставки, но и конкурсы, воспользуйтесь шансом.
1xbet в вашем кармане, сделайте ставки на ходу.
Дайте себе преимущества с 1xbet, анализируйте каждый шаг.
Простая регистрация на 1xbet, приступайте к ставкам.
Откройте новый уровень азартных игр с 1xbet, реализуйте свои мечты.
Заходите на 1xbet для эксклюзивных предложений, развивайте свои навыки.
xbet [url=https://1xbet-login-egypt.com/]xbet[/url] .
buy generic 100mg viagra online: cheap viagra – sildenafil online
kamagra pillen kopen Kamagra Kopen Kamagra
DentiCorгe is the very best dental ѕupplement I’vе attempted.
My periodontals used to hemoгrhage regularly, but ⅽօnsidering that I began making use off DentiCoгe,
they’ve ended up beng much healtһieг.
The all-naturаl active іngredients and
prοbiotics work marvels. I can’t imagine my oral treatment regimen without
it!
My web site – DentiCore Probiotics For Strong Teeth
Погрузитесь в азарт с 1xbet, советуем.
Добро пожаловать в мир ставок с 1xbet, лучшие предложения.
Уникальные бонусы от 1xbet, не упустите возможность.
1xbet – идеальное место для спортивных ставок, используйте.
1xbet – ваш портал в мир лайв-ставок, ваши шансы на выигрыш увеличиваются.
Всё для ваших ставок на 1xbet, свои стратегии.
1xbet – это выбор на любой вкус, от спорта до киберспорта.
1xbet – живые трансляции ваших любимых матчей, сделайте вашу ставку.
Быстрые выводы выигрышей с 1xbet, действуйте быстро.
1xbet – аналитика ставок для вас, будьте всегда на шаг впереди.
Ваши данные в безопасности с 1xbet, мы ценим вашу конфиденциальность.
Скидки и бонусы только для вас с 1xbet, максимизируйте свой выигрыш.
Выигрывайте и наслаждайтесь с 1xbet, выберите правильный путь.
Чат поддержки 24/7 на 1xbet, вы всегда не одни.
Регулярные турниры и конкурсы на 1xbet, будьте в курсе событий.
1xbet в вашем кармане, удобно и быстро.
Используйте статистику и аналитику на 1xbet, это умная игра.
Зарегистрируйтесь на 1xbet всего за несколько минут, не теряйте время.
Откройте новый уровень азартных игр с 1xbet, реализуйте свои мечты.
Заходите на 1xbet для эксклюзивных предложений, ставьте с умом.
????? 1xbet https://1xbet-login-egypt.com/ .
Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
Мы предлагаем:ремонт бытовой техники в мск
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
Generic 100mg Easy: buy generic 100mg viagra online – Cheap Viagra 100mg
kamagra jelly kopen: kamagra jelly kopen – kamagra gel kopen
Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
Мы предлагаем:сервисные центры в москве
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
Мы предлагаем:сервисные центры в москве
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
Generic100mgEasy: Generic100mgEasy – cheapest viagra
https://tadalafileasybuy.com/# cialis without a doctor prescription
Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
Мы предлагаем:сервис центры бытовой техники москва
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
payday loan
Buy Tadalafil 20mg: cialis without a doctor prescription – Buy Cialis online
https://kamagrakopen.pro/# Kamagra Kopen Online
1xbet – лучший выбор для ставок, советуем.
Ставки на спорт с 1xbet, используйте.
Получите бонусы на первую ставку с 1xbet, промоакции.
Ставьте на любимые виды спорта с 1xbet, удовольствие.
Лайв-ставки с 1xbet – это захватывающе, сделайте каждую секунду важной.
1xbet предлагает широкую линейку ставок, свои стратегии.
1xbet – это выбор на любой вкус, от любимых команд до редких событий.
1xbet – живые трансляции ваших любимых матчей, наслаждайтесь просмотром.
1xbet – получите свои выигрыши мгновенно, действуйте быстро.
Получите инсайдерскую информацию с 1xbet, дайте себе преимущество.
Ваши данные в безопасности с 1xbet, это важно.
Не пропустите акционные предложения от 1xbet, получайте больше от каждой ставки.
Выигрывайте и наслаждайтесь с 1xbet, выберите правильный путь.
1xbet – поддержка, когда она нужна, мы рядом, чтобы помочь.
Регулярные турниры и конкурсы на 1xbet, воспользуйтесь шансом.
Платформа 1xbet доступна на мобильных устройствах, всегда под рукой.
Дайте себе преимущества с 1xbet, будьте стратегом.
Простая регистрация на 1xbet, приступайте к ставкам.
1xbet – это ваше окно в мир ставок, реализуйте свои мечты.
Заходите на 1xbet для эксклюзивных предложений, развивайте свои навыки.
xbet xbet .
Generic 100mg Easy: Generic100mgEasy – Generic 100mg Easy
Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
Мы предлагаем:сервис центры бытовой техники москва
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
Откройте для себя мир ставок с 1xbet, сейчас же.
1xbet – ваши ставки под контролем, в интернете.
1xbet предлагает щедрые бонусы, поспешите воспользоваться.
Скорее ставьте на свои любимые команды с 1xbet, от ставок.
1xbet – ваш портал в мир лайв-ставок, вы всегда на шаг впереди.
1xbet предлагает широкую линейку ставок, и выигрывайте.
1xbet – это выбор на любой вкус, от спорта до киберспорта.
Смотрите матчи в режиме реального времени с 1xbet, погрузитесь в атмосферу.
1xbet – получите свои выигрыши мгновенно, открывайте возможности.
Обзоры и прогнозы на 1xbet, дайте себе преимущество.
Ставьте с уверенностью на 1xbet, это важно.
Скидки и бонусы только для вас с 1xbet, получайте больше от каждой ставки.
Ставьте смело с 1xbet, это ваш шанс на успех.
1xbet – поддержка, когда она нужна, вы всегда не одни.
Регулярные турниры и конкурсы на 1xbet, будьте в курсе событий.
Платформа 1xbet доступна на мобильных устройствах, всегда под рукой.
Ставьте на основе данных с 1xbet, анализируйте каждый шаг.
Простая регистрация на 1xbet, не теряйте время.
Откройте новый уровень азартных игр с 1xbet, начните выигрывать.
Заходите на 1xbet для эксклюзивных предложений, развивайте свои навыки.
app 1xbet app 1xbet .
https://generic100mgeasy.com/# Generic100mgEasy
1xbet – лучший выбор для ставок, уже сегодня.
1xbet – ваши ставки под контролем, на рынке.
1xbet предлагает щедрые бонусы, сейчас.
Скорее ставьте на свои любимые команды с 1xbet, волнение.
Присоединяйтесь к 1xbet для живых ставок, сделайте каждую секунду важной.
Всё для ваших ставок на 1xbet, свои стратегии.
Обширные рынки на 1xbet, от футбола до тенниса.
Смотрите матчи в режиме реального времени с 1xbet, погрузитесь в атмосферу.
Деньги на вашем счете с 1xbet за считанные минуты, не ждите.
Обзоры и прогнозы на 1xbet, поможем вам оставаться в курсе.
Ваши данные в безопасности с 1xbet, это важно.
Промокоды и специальные предложения на 1xbet, воспользуйтесь шансом.
1xbet – ваш надежный партнер в мире беттинга, выберите правильный путь.
Получите помощь в любое время на 1xbet, никогда не оставайтесь в одиночестве.
1xbet – это не только ставки, но и конкурсы, будьте в курсе событий.
Ставьте в любое время и в любом месте с 1xbet, удобно и быстро.
Дайте себе преимущества с 1xbet, анализируйте каждый шаг.
Простая регистрация на 1xbet, доступ к азарту.
1xbet – это ваше окно в мир ставок, начните выигрывать.
Не упустите уникальные возможности на 1xbet, ставьте с умом.
1xbet ????? ????? https://1xbet-login-egypt.com/ .