GSAP JS基礎教程--認識GSAP JS


第一次寫博文呢,這次寫博客是因為應一位同學的要求,寫一下GSAP JS的一個小教程。為什么說小呢?因為它實際上就是小,只是一個入門級的小教程。如果你想問:“那你為什么不寫詳細一點呢?”,我想說,說.,說..,“因為我也不懂,哈哈”,就是不懂,不騙你們,不懂就是不懂。那我那點英文水平腫么會懂呢?

 
好吧,言歸正傳。首先說一下GSAP(GreenSockAnimationPlatform)的官網,點這里進入GSAP的官網,也可以點這里直接進入GSAP JS的介紹,有空詳細看一下,並不需要非常好的英語水平才能看,你看博主我這個英文水平都能看懂部分,不懂的部分就多查查有道。看得懂的話就可以完全跳過我的這篇“小教程啦”,真的,我說得一定不夠官方的詳細、全面、好,還有可能會說錯(:汗
 
好吧,這次真的要開始啦!准備好了嗎? 開始 啦!!!
 
首先,我們先說一下工具的准備,要學習GSAP,那么我們一定要先准備一個GASP的類包啦,文章結束的時候,博主我會給出一個網盤地址,讓同學本下載,當然,你也可以到GreenSock的官網(http://www.greensock.com)下載最新的版本
 
GSAP有兩個版本一個為ActionScript 版本,已經在flash平台上運行多年,是一個“輕量級”、“高效率”、強大的2D動畫引擎,一直深受ASer(學ActionScript的人都叫自己 ASer)的歡迎,學AS的人,沒有一個說是不知道、沒使用過GSAP的。
 
GSAP JS顧名思義是指GSAP的js版本,GSAP JS是GreenSock公司新出的一個2D動畫引擎,可以說是AS版本的移植版,雖然功能還不夠AS版本的完善,但是一樣是非常強大、高效、好用的,據說它的運行速度是JQuery的20倍(想測試的同學可以點這里)。當然,這是說動畫方面的,jQery也有自己的強大之處(比如jQuery強大的選擇器)。
 
 
好吧,類包也准備好啦,這一次真的真的要開始啦!
 
使用之前,就像使用其他任何js類庫,先要導入類包,導入方法如下:
<script type="text/javascript" src="你的類包的路徑" ></script>
 
導入包的比較常用組合有兩種,CSSPlugin.min.js+EasePack.min.js+TweenLite.min.js 和TweenMax.min.js 這兩種組合;
TweenMax是TweenLite的子類,它承 了TweenLite所有屬性和方法,同時還包含了一些常用的插件(比如CSSPlugin),所以當你導入TweenMax時就不需要導入 CSSPlugin啦。當然因為TweenMax包含了其他的插件,所以它的“份量”會大一點,不名夠TweenLite小巧,實際使用時,可根據個人需 求進行選擇。
 
注:
TweenMax包含TweenLite, CSSPlugin, EasePack, TimelineLite, TimelineMax, RoundPropsPlugin, BezierPlugin, AttrPlugin,和 DirectionalRotationPlugin所以可以單獨使用
 
TweenLite沒有包含CSSPlugin插件(網頁通過css來控制元素變化),所以不能單獨使用,至少要和CSSPlugin一起用
 
下面的導入的一個示例:
<!--CDN links for the latest TweenLite, CSSPlugin, and EasePack-->
<script src="http://cdnjs.cloudflare.com/ajax/libs/gsap/latest/plugins/CSSPlugin.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/gsap/latest/easing/EasePack.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/gsap/latest/TweenLite.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/gsap/latest/TweenMax.min.js"></script>

我不怎么會說話,直接來一個小實例好啦,邊做邊解說!

我們來做一個簡單的小方塊移動動畫吧:

1)先來創建一個小方塊(用div來做);
<div id="rect"></div>

 

2)寫一下div的樣式,讓它看起來更像一個方塊;
.rect{
//元素的position根據需求來設置
//如果position為static,關於元素的坐標的操作將會無效,但對於元素的width,height的操作還是會被執行
//如果position為absolute或fixed或relative時,對於元素的坐標的寬高的操作都能生效
//試着改變下面的position屬性來看一下效果
position:absolute;
width:100px;
height:100px;
background-color:blue;
top:300px;
left:50px;
}

 

3)開始寫代碼,讓方塊動起來;

這里使用的TweenLite(使用記得導入包,TweenMax的使用方法類似)

TweenLite的構造方法是這個樣子的:TweenLite(target:Object, duration:Number, vars:Object);
target為要操作的dom對象;
duroation為整個動畫的持續時間;
vars為一個自屬性集合對象,可以是一個屬性如:{left:"500px"},或多個屬性如:{left:"500px",top:"200px",width:"200px"}

好了,下面我們先來花1秒鍾把剛才創建的方塊的橫坐標移動到500像素的位置吧!方法如下:

var rect=document.getElementById_x_x_x_x_x("rect");
TweenLite.to(rect,1,{left:“500px”});

上面兩行代碼也可以簡單地寫成:TweenLite.to("#rect",1,{left:"500px"});

TweenLite並不依賴jQuery,但我們還可以利用jQuery強大的選擇器來簡化TweenLite創建動畫的代碼,

比如上面的代碼可以通過id名來(#rect)來簡化動畫的創建過程,當我們導入jQuery時,我們還可以使用

元素的類(例如:".rect")等來代表元素,從而簡化代碼;


不知道有沒有說清楚,簡單地說
TweenLite(target:Object, duration:Number, vars:Object);
target對象可以用jQuery的選擇器選擇出來的對象(例如:$("#element"),$(".abd"),$("#element p")等等)來代表,從而簡化代碼

 

4)擴展;
好啦,光讓方塊向右移動一下不過癮?那我們再讓方塊向下移動100像素,同時把它的寬設為原來的兩倍,我們可以這樣寫:
TweenLite.to("#rect",1,{top:"400px",scale:2});//scale為縮放比例的意思

 

好啦,把這話代碼添加到原來的代碼中去,變成:
TweenLite.to("#rect",1,{left:"500px"});
TweenLite.to("#rect",1,{top:"400px",scale:2});//scale為縮放比例的意思
這個樣子,運行看看!

這個會變成方塊向坐標(500,400)移動,並同樣放大兩倍。
這 是為什么呢?因為我們的兩號代碼沒有時間間隔,同時執行啦,解決辦法是:為第二個TweenLite設置一個延時時間(delay),延時多久呢?因為第 一個動畫的持續時間為1秒,所以我們第二動畫就等它一秒,等第一個動畫播放完再開始吧,也就是說延時1秒,修改后的代碼是這樣子的:

TweenLite.to("#rect",1,{top:"400px",scale:2,delay:1});//scale為縮放比例的意思

 




以及今天的完整代碼:
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title> New Document </title> <meta name="Generator" content="EditPlus">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
 
    
    <!--
      *@author AIJ
      *@email 1058514799@qq.com
      *@date 2013-6-28
     -->
 
    <style type="text/css">
    #rect{
      position:absolute;
      width:50px;
      height:50px;
      background-color:blue;
      top:300px;
      left:50px;
    }
    </style>
 
    <script type="text/javascript" src="greensock/plugins/CSSPlugin.min.js"></script>
    <script type="text/javascript" src="greensock/TweenLite.min.js"></script>
    </head>
  <body>
    <div id="rect"></div>
    <script type="text/javascript">
      TweenLite.to("#rect",1,{left:"500px"}); TweenLite.to("#rect",1,{top:"400px",scale:2,delay:1});
    </script>
  </body>
</html>

 

好啦,今天就先說到這吧,困了,修改天有空,有心情再斷續!



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM