GSAP動畫庫入門基礎示例:心愛的小摩託

2021-02-20 前端達人

大家好,在我們談論網頁動畫時,我們第一時間會想到用jQuery的animate()方法或者CSS3的animation和transition。今天的這篇文章,我將給大家推薦另一個可選方案,一款專業的Web動畫庫GSAP,通過這款工具你能做出絢麗複雜的動畫效果,通過本篇文章的學習,你將會學習到什麼是GSAP,以及相關的入門基礎知識。

一、什麼是GSAP?

GSAP全稱是GreenSock Animation Platform,是一個JS動畫框架。

GSAP有兩個版本,一個為ActionScript 版本,已經在flash平臺上運行多年,是一個「輕量級」、「高效率」、強大的2D動畫引擎,一直深受ASer(學ActionScript的人都叫自己 ASer)的歡迎,學AS的人,沒有一個說是不知道、沒使用過GSAP的。

GSAP JS顧名思義是指GSAP的js版本,GSAP JS是GreenSock公司新出的一個2D動畫引擎,可以說是AS版本的移植版,雖然功能還不夠AS版本的完善,但是一樣是非常強大、高效、好用的,據說它的運行速度是JQuery的20倍(動畫方面的性能)。

有興趣的可以訪問官網,查看更多相關資料:https://greensock.com/

二、 GSAP的特點運行速度快,GSAP專注優化動畫的性能,儘量接近與CSS一致的高性能。輕量與模塊化。將功能進行拆分,讓核心框架保持輕量,TweenLite包非常小,同時提供了TweenLite, TimelineLite, TimelineMax 和 TweenMax不同功能的動畫模塊,可以按需使用,無需依賴。靈活控制。不用受限於線性序列,可以重疊動畫序列,你可以通過精確時間控制,靈活地使用最少的代碼實現動畫。

說了這麼多我們來看官方的視頻介紹吧(英文原聲視頻,沒有字幕翻譯,請大家多多包涵),順便練練英語聽力。

三、 如何安裝與引用?

GSAP既然這麼好,我們如何安裝和引用呢?

去官網下載核心庫的JS文件:gsap.min.js,目前版本大小不到60K。        https://cdnjs.cloudflare.com/ajax/libs/gsap/3.2.4/gsap.min.js通過npm或yarn安裝,安裝命令分別如下:npm install gsapyarn add gsap四、入門案例:心愛的小摩託

說了這麼多,我們來看看如何使用,這裡介紹的是JS原生的使用方式,如果你感興趣 React、Vue 、Angular 的使用方式,請訪問官網。這裡我將通過心愛的小摩託示例,帶著大家熟悉下最基礎最核心的API。在介紹之前我們來聽一段前段時間很火的音樂:我騎上心愛的小摩託,作為課前的案例預熱,😁😁😁

1、準備基礎環境

首先我們需要引用核心的JS文件:gsap.min.js其次再引用一個簡易版的常用圖標CSS庫,這裡有我們心愛的小摩託:   https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css

<div class="sky">
<i class="fa fa-motorcycle"></i>
</div>
<div class="ground"></div>

i 標籤的內容就是引入 font-awesome 圖標庫的小摩託圖標

body { margin: 0; }

.fa-motorcycle {
color: #333;
font-size: 50px;
line-height: 30px;
margin-top: 68px;
margin-left: 20px;
}

.sky {
background-color: #adf;
height: 100px;
}

.ground {
background-color: #778;
width: 100%;
height: 30px;
}

淡藍色好比天空,灰色好比地面,地面上停了一輛酷酷的黑色摩託車,準備工作到此完成,我們來利用 GSAP 的 API 開動摩託車吧!

2、使用 gsap.to() 方法,讓小摩託向前600px

gsap.to() 就是告訴動畫對象,最終要達到的運動狀態,這個函數有兩個關鍵參數:

第二個參數就是要告知動畫最終效果的對象:動畫時長、是旋轉還是位移變化、或者其它屬性的變化

js的代碼文件如下:

const cycle=document.querySelector(".fa-motorcycle");
gsap.to(cycle,{
duration:2,
x:"600px"
});

上述代碼告知我們的小摩託,需要在2秒內向前開動600px,duration是動畫時長的設定,x表示在橫軸方向位移,這裡你還可以用left:"600px", 但是你需要在CSS的 .fa-motorcycle 中添加 position: relative 屬性,否則你看不到動畫效果。

3、使用 gsap.from() 方法,讓小摩託向前600px

這個函數的功能與gsap.to()的調用方法一致,你需要告知函數現有的狀態是從原來的哪個狀態轉換過來的,就好像把過去發生的動作回放了一遍 。

首先我們修改 .fa-motorcycle 類 ,讓摩託車先向右移動600px

.fa-motorcycle{
color: #333;
font-size: 50px;
line-height: 30px;
margin-top: 68px;
margin-left: 20px;
position: relative;
left: 600px;
}

接下來我們修改js文件:

const cycle=document.querySelector(".fa-motorcycle");
gsap.from(cycle,{
duration:5,
left:"0px"});

接下來,為了讓我們騎著心愛的小摩託更加拉風,我們讓動畫由遠及近逐漸顯示,同時並非直線騎行,往下移動20px。這些動作都是同時進行的,我們可以同時添加多個gsap.from()或gsap.to(),示例代碼如下:

const cycle=document.querySelector(".fa-motorcycle");
gasp.to(cycle,{
duration:2,
x:"600px"});
gsap.from(cycle,{
duration: 2,
opacity:0});
gasp.to(cycle,{
duration:2,
y:"20px"});

這裡我們用到了opacity 屬性,讓我們的小摩託先隱藏起來,然後逐漸顯示;y:"20px",其意思就是往下移動20px。

5、多個動畫屬性寫在一起,變成藍色小摩託

黑色的小摩託雖然拉風,偶爾也需要換下口味,我們把灰色的小摩託在運動過程中變成藍色的小摩託,你可以一口氣將想要改變的屬性寫在一個動畫對象裡,示例代碼如下:

const cycle=document.querySelector(".fa-motorcycle");
gsap.to(cycle,{
duration:2,
x:"600px",
y:"20px",
color:"blue"
});

為了讓運動效果更加自然,我們需要添加一些過渡效果,比如css動畫裡常見的linear,ease-in,ease-out,ease-in-out,這些運動效果,GSAP也是支持的,這裡我使用了 ease-in-out 這個屬性,慢慢加速起來然後慢慢停下來,這樣騎摩託才安全,如下代碼所示:

const cycle=document.querySelector(".fa-motorcycle");
gsap.to(cycle,{
duration:2,
x:"600px",
ease:Power4.easeInOut
});

這裡你可能注意到了,我們這裡使用了Power4,這個屬性,其實這個屬性有 Power0~4 這幾個屬性,這個屬性從低到高依次增強動畫的運動屬性,感興趣的話可以親自嘗試下。7、添加 Transformation 變換屬性,秀一把車技

學了這麼多,接下來我們秀一把車技,將車把抬高45度,再加一些反彈動效,讓效果更加接近真實的物理世界。這裡我們用到了rotation屬性,進行角度的旋轉,以及Bounce反彈的動效屬性,最後別忘記改變角度旋轉的作用點,是在車後輪,這裡用到了transformOrigin進行更改,最終完成的代碼效果如下圖所示:

const cycle=document.querySelector(".fa-motorcycle");
gsap.to(cycle,{
duration:2,
x:"600px",
ease:Power2.easeOut,
});
gsap.from(cycle,{
duration:1,
rotation:-45,
transformOrigin:"10px bottom",
ease:Bounce.easeOut
});


五、官方入門視頻如果你覺得上面的內容還沒學夠,意猶未盡的話,推薦你看下官方的視頻,內容如下(很抱歉,也是英文原聲,希望你能耐心的看下去)小節今天的內容就和大家分享到這裡,感謝你的閱讀,希望能引起你對 GSAP 的興趣,並能在項目中進行嘗試。如果你喜歡我的分享,麻煩給個關注、點讚加轉發哦,你的支持,就是我分享的動力,後續會持續分享這個庫的案例,歡迎持續關注。

專注分享當下最實用的前端技術。關注前端達人,與達人一起學習進步!

相關焦點

  • 抖音騎上我心愛的小摩託是什麼歌 完整版歌詞介紹
    最近在抖音上聽到一首很魔性的歌曲,歌詞大意是「騎上我心愛的小摩託」。據了解,這首歌歌名就叫《騎上我心愛的小摩託》,原唱是靜sir,抖音上聽到的翻唱版是一個叫「一條小團團OVO」主播唱的。下面來看一下。
  • 騎上別人心愛的小摩託,它馬上會被抓!
    騎上我心愛的小摩託~~~它永遠不會堵車嘟嘟嘟 嘟嘟嘟嘟 嘟嘟嘟嘟可騎上別人心愛的小摩託,來源/旭日派出所,廣信公安,如果內容侵犯您的版權或者非授權發布,請聯繫小編,我們會及時審核處理文章整理:上饒網、上饒論壇
  • 騎上我心愛的小摩託, 可是導航卻錯了……
    騎上我心愛的小摩託, 可是導航卻錯了…… 2020-09-23 17:13 來源:澎湃新聞·澎湃號·政務
  • 郭麒麟在外拍戲期間,閻鶴祥也沒有閒著,騎上了自己心愛的小摩託
    他沒在德雲社的這些日子裡,自己過的這沒有大家想像的「慘」,除了說說評書,沒事也可以自駕遊,騎著我心愛的小摩託,約三五好友,一起瀟灑走一回。上述內容就是德雲社「太子妃」閻鶴祥的內心獨白,有人該鬱悶了,為什麼不找個搭檔上舞臺呢?
  • 《騎上我心愛的小摩託》:是否想到有一天不光會堵車,還不敢上路
    網絡上爆紅的神曲《騎上我心愛的小摩託》的版本可以說是層出不窮,很多人的翻唱更增加了這首歌的曝光度。而最經典的版本當屬小團團的版本了。很多年輕人在騎上自己的小摩託的時候,都會無意間哼起這首神曲,十分愜意。然而,如今不光小摩託不能如此愜意,甚至連小電瓶的霸主位置都受到了影響,一度待在家裡不敢上路。前不久才下發了指令,開始設置二輪車的駕照考試,但由於「戰疫」,這個指令被推遲了許多,最終在這段時間還是開始實行。
  • 騎上我心愛滴小摩託~~這些安全鬚鬚須注意!
    騎上我心愛滴小摩託~~這些安全鬚鬚須注意!即使生活不易小海衛還是要鄭重提醒擋雨棚、童座椅~~~統統裝不得!這些年圍巾卷進車輪脖子真「斷」了的可不少:菲律賓祖母騎車圍巾當背巾,孫子被扯掉頭顱,杭州爺爺送孫女上學圍巾被卷,孩子窒息……小夥伴們,防寒保暖的話,你其實有很多選擇,比如高領毛衣、襯衫、圍巾塞進褲裡、佩戴圍脖
  • 騎上你心愛的小摩託,記得一定要剎住車……
    騎上你心愛的小摩託,記得一定要剎住車…… 2020-10-15 17:30 來源:澎湃新聞·澎湃號·政務
  • 李沁騎上她心愛的小摩託,不一樣的時尚街拍,鄰家女孩
    李沁騎上了她心愛的小摩託,畫風非常的溫暖,本次李沁是毛衣搭配牛仔褲和小白鞋的基礎款搭配而且她的髮型也非常的減齡,別人搭配的丸子頭是非常大的一個丸子,她的丸子頭造型則是非常小的一個丸子,而且她沒有留劉海,露出了她的額頭,兩側髮型是捲髮,這是典型的鄰家女孩風格搭配。
  • 風景素描繪畫入門之基礎技法
    風景畫繪畫基礎技法學習繼續:每個習慣使用鉛筆的人最後都會形成自己的一套筆法。
  • 入門高端性能踏板,三陽DRG158摩託的五個有點
    去年底,踏板大廠三陽用龍作為設計語言,推出了DRG158這款踏板摩託,這款踏板摩託也已經進入國內且售價不菲,小編也看到一些車友騎著它走川藏線,性能非常給力。對於這樣一款踏板摩託,並不全是優點;今天我們就來看看它在車主眼中的一些優缺點。
  • 入門踏板摩託也玩運動,光陽RacingS150踏板摩託,動力強配置多
    而且夏秋兩季也是很多機車愛好者選擇摩託周末出行或跑山的主要時間段。最近臺灣光陽摩託(KYMCO)推出了旗下的入門運動踏板摩託Racing S150,太空灰配色不但高級而且還用紅色做以點綴,可以說冷庫和潮流並存。外觀方面採用了當前流行的水泥色為主色調,配上了很鮮豔的紅色輪轂,前面板則用了調色點綴,讓Racing S150ABS給人的感覺非常運動,充滿了活力。
  • 入門通勤運動踏板摩託,單缸水冷續航300km,標緻SF4性能不俗
    在摩託車的江湖世界中,法國摩託如何他們的汽車一樣,雖然品牌響亮,但仍舊屬於小眾。但即使如此,得益於發展歷史悠久,也時不時有經典車款誕生。而法國標緻則是法國摩託在如今市場上被大家公認的品牌,雖然在國內標緻車被很多人膚淺的認為是靠顏值賺取市場份額的車款,但這並不是標緻摩託的全部;這不,在上個月標緻在國內推出了旗下的入門運動踏板摩託SPEEDFIGHT 150車款,下面我們就來聊聊。
  • 刺繡針法 | 入門基礎針法大全之二,再送三種針法教程及練習圖(雛菊繡、鎖鏈繡、結粒繡)!
    入門基礎針大全來到了之二,之前第一期的入門基礎針法大家是不是有點意猶未盡?
  • 牽著我心愛的小摩託,騎行去寮國:從磨丁到琅勃拉邦(下)
    撐著疲憊透支的身軀,扶著同甘共苦的小摩託,進了一家四川酒店,沉沉睡去了。可能是太累的緣故,這一覺睡得很香。打開窗戶,和太陽一起升起的是對下一個目的地,琅勃拉邦的期待。街對面,是零星幾個等公交的當地人,公路上,是寮國出鏡率極高的豐田皮卡。起床洗漱,吃完早餐後,就按例做了個車檢,戴上頭盔和手套,全副武裝繼續向目的地進發。
  • 去他喵的早高峰,騎上我心愛的小摩託,再也不用擔心堵車
    說起配件來,C40的工具箱還是不小,挨個拿出來竟然有這麼多配件,其實就電動車的功能本身而言,不用腳蹬板,不用後視鏡也是一樣騎,電動車的嘛~但是既然人家都放了,安裝起來也沒啥難度,三下五除二裝好,走下樓遛彎兒,NO——兜風去!
  • 閻鶴祥騎著我心愛的小摩託重走絲綢之路並未駛離大林
    2019年,有著12年騎行經驗的閻鶴祥借著空閒自駕摩託,跨越中亞,重走絲綢之路,上演了「壯壯歷險記」。計劃「閒來無事」騎摩託重走絲路閻鶴祥自2008年就已經開始了摩託車騎行,一開始是為了通勤,逐漸就變成了愛好,他騎著摩託在國內各地旅行探索,但真正與環球旅行結緣則起始於2010年。
  • 春風ST狒狒mini摩託車,兼顧玩樂和時尚的個性小摩託!
    騎上我心愛的小摩託,它永遠也不會堵車! 如果你厭倦了沒有什麼玩樂性的踏板車,那麼今天咱們就整個好玩的mini檔車!春風ST狒狒登場!
  • 摩託新手想買復古車,入門級求推薦?
    摩託新手想買復古車,入門級求推薦?這種需求下,其實完全沒必要去選擇二手車,不是說二手車不能選,而是二手車當中的好車你遇不到,並且二手車的水很深,所以一般情況下騎士分享是不建議選擇二手車的,因此跳過這個問題,直接來看入門級復古車的推薦。
  • 重慶摩託,馳騁全國!小摩託、大摩託後的重慶新摩託橫空出世!
    最近幾年,雖然已經更名為重慶當代,但重慶隊的表現一年比一年好,隊中的「摩託車」更是層出不窮,前有小摩託一騎絕塵,後有大摩託連過五人,現在又有新摩託力斬魯能。重慶摩託,用過的都說好。
  • 售價9300英鎊 入門級拉力摩託 凱旋Tiger 850 Sport上市
    昨天,英國凱旋摩託正式發布了,新的入門級「老虎」,Tiger 850 Sport,售價9,300英鎊(約8.1萬人民幣)。850 Sport更加側重於公路的版本,將會取代現有的基礎版本Tiger 900,進一步降低Tiger系列的門檻。