move.js在使用時要注意的問題

今天在學習使用jquery的動畫插件move.js,期間設想了一些使用情形,現在整理出來分享給大家。使用時一定多多注意哦!

Move#add(prop, val)
在這里val的值是一個不帶單位的阿拉伯數字,如:

move('.box1').add('margin-top', 50).end();

假如帶上了單位px會是什么樣子呢?結果就是這一條代碼無效,不過也不會報錯。如果代碼量很大,動畫又比較多的話,那就很難找到問題所在了。所以一定要注意哦!
元素的動畫如下三種寫法都是可以的哦!如:
寫法一:

move('.box1').add('margin-top', 50).end();

寫法二:

move(".box1").set("margin-left","200px").end(function(){
    move(".box1").set("margin-left",0).end(function(){
        move('.box1').add('margin-top', 50).end();
    });
});

寫法三:

move(".box1")
.set("margin-left","200px")
.add('margin-top', 50)
.end();

那么寫法三可以像下面這樣寫嗎,把add改為set?

move(".box1")
.set("margin-left","200px")
.set('margin-top', "50px")
.end();

答案是肯定的,二者效果一致。不過此時記得給val帶上相應的單位哦。
如果set和add設置的屬性一致,比如都是margin-left呢?如:
第一種情形:

move(".box1")
.set("margin-left","200px")
.add('margin-left', 50)
.end();

結果是box1的margin-left值是50px,且是元素直接運動到margin-left:50px的位置。可不是200+50=250哦。
第二種情形:

move(".box1")
.set("margin-left","200px")
.end(function(){
    move('.box1').add('margin-left', 50).end();
});

box1會先運動到margin-left:200px的位置,稍作停頓再向右運動 50px,最終margin-left的值是200+50=250px。
不同寫法效果不同,一定不要混淆哦。

與Move#add(prop, val)違逆的是sub(prop, val)
這里的val也必須是一個數字。
用法與add一致。不同的是,以margin-left:50為例,add是向右運動50px,sub則是向左運動50px。可以簡單的理解為,相同的屬性和屬性值,add方法和sub方法運動軌跡相反。

Move#duration(n)設置動畫持續的時間,一定要有動畫才可以哦,不然就沒有持續的對象了。如果沒有動畫只設置duration,雖然不報錯,但是沒有任何意義。
先設置動畫還是先設置duration都可以哦,效果一致:

move(".box2").rotate(270).duration("10s").end();
move(".box2").duration("10s").rotate(270).end();

上面兩條代碼運行效果一致。

Move#translate(x[, y])
可以寫為** Move#to(x[, y])**。
使用時呢,可以接收1個參數,此時表示x軸移動的值;也可以接收2個參數,第一個參數表示X軸移動的值,第二個參數表示y軸移動的值。
move(".box2").translate(200).end();僅僅水平向右運動200px;
move(".box2").translate(400,400).end();水平向右運動400px的同時垂直向下運動400px;
如果向下面這樣寫會是什么效果呢?

move(".box2").translate(200).end();
move(".box2").translate(400,400).end();

結果是第一條代碼被覆蓋了,沒有效果;我們看到的是第二條代碼生效。
也許會有小伙伴說可能是運動太快肉眼沒看清才會錯以為第一條代碼沒有生效,那么我們可以給第一條代碼設置動畫持續時間看一下效果:

move(".box2").translate(200).duration("10s").end();
move(".box2").translate(400,400).end();

我們會看到根本沒有第一條代碼期望的運行10s的動畫過程。
Move#translate(x, y)也可以拆開為Move#translateX()和Move#translateY(),如:

move(".box2").translateX(100).translateY(100).end();

其運行效果和move(".box2").translate(100,100).end();一致。
有一點需注意,Move#translateX()、Move#translateY()的X\Y必須大寫,小寫會報錯
其中,Move#translateX()可以寫為Move#x(),Move#translateY()可以寫為Move#y()。如

move(".box2").x(100).y(100).end();

一定要記得,Move#x()、Move#y()的x\y必須是小寫,大寫會報錯的

Move#skew(x[, y])用法和Move#translate(x[, y])類似。
move(".box2").skew(50,50).end();move(".box2").skewX(50).skewY(50).end();效果一致。
若Move#skew(x[, y])只有一個參數,則表示水平方向的斜切度數,垂直方向斜切度數默認為0.
Move#scale(x[, y])用法和Move#skew(x[, y])一致。

很重要的一點,Move#then([fn])和.pop()要配合使用。如果想要使用then()方法,下面的寫法是不會達到預期效果(先水平放大2倍,再垂直放大2倍)的:

move(".box2")
.scaleX(2)
.then()
    .scaleY(2)
.end();

上面的代碼實際運行效果和move(".box2").scaleX(2).scaleY(2).end();一致,水平和垂直方向同時放大二倍。加上pop()就可以達到預期效果了,如下:

move(".box2")
.scaleX(2)
.then()
    .scaleY(2)
    .pop()
.end();

要注意,有幾個then()就要有幾個對應的pop()。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,401評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,011評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,263評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,543評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,323評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,874評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,968評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,095評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,605評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,551評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,720評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,242評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,961評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,358評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,612評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,330評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,690評論 2 370

推薦閱讀更多精彩內容

  • 選擇qi:是表達式 標簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    wzhiq896閱讀 1,779評論 0 2
  • 選擇qi:是表達式 標簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    love2013閱讀 2,324評論 0 11
  • 1、屬性選擇器:id選擇器 # 通過id 來選擇類名選擇器 . 通過類名來選擇屬性選擇器 ...
    Yuann閱讀 1,650評論 0 7
  • 看了很多視頻、文章,最后卻通通忘記了,別人的知識依舊是別人的,自己卻什么都沒獲得。此系列文章旨在加深自己的印象,因...
    DCbryant閱讀 1,872評論 0 4
  • 榆林產婦墜樓悲劇這一偶發事件并沒有隨著醫院與家屬的私了而戛然而止,網上關于這件事情的討論和說法仍然甚囂塵上...
    經過春天的螞蟻閱讀 271評論 0 0