1. 程式人生 > >前端學習之路---jquery

前端學習之路---jquery

  • 動畫效果

    基本效果

    匹配元素從左上角開始變濃變大或縮小到左上角變淡變小

    ①隱藏元素

    除了可以設定匹配元素的display:none外,可以用以下函式

    hide(speed,[callback])  返回值:jQuery  引數-speed:三種預訂速度之一的字串String(slow,normal,fast)或表示動畫時長的毫秒數Number  callback:在完成動畫時執行的函式,每個匹配元素執行一次

    slow=600毫秒  normal=400毫秒  fast=200毫秒

    以優雅的動畫隱藏所有匹配的元素,並在隱藏完成後可選的觸發一個回撥函式。

    ②顯示元素

    show(speed,[callback])    以優雅的動畫顯示所有匹配的元素,並在顯示完成後可選的觸發一個回撥函式。 

    ③交替顯示隱藏

    toggle(speed,[callback])  以優雅的動畫切換匹配元素的可見狀態,原來可見切換為不可見,原來不可見切換為可見。

    $(function(){
    
    $("#hide1").click(function(){$("#1").hide(700)});
    
    $("#show1").click(function(){$("#1").show(700)});
    
    $("#toggle1").click(function(){$("#1").toggle(700)});
    
    })

    2.滑動效果

    ①向上收縮效果

    slideUp(speed,[callback])  通過高度的變化方式向上隱藏元素,並在隱藏完成後可選的觸發一個回撥函式。

    ②向下展開效果 

    slideDown(speed,[callback])  通過高度的變化方式向下顯示元素,並在顯示完成後可選的觸發一個回撥函式。

    ③交替伸縮效果 

    slideToggle(speed,[callback]) 切換匹配元素的高度的方式來改變可見狀態,原來可見切換為不可見,原來不可見切換為可見。

    $("#slideup1").click(function(){$("#1").slideUp(700)});
    
    $("#slidedown2").click(function(){$("#1").slideDown(700)});
    
    $("#slidetoggle").click(function(){$("#1").slideToggle(700)});

    3.淡入淡出效果

    通過控制匹配元素的不透明度來實現元素的顯示與隱藏

    ①淡入效果

    fadeIn(speed,[callback])  通過不透明度的變化逐漸將匹配元素顯現出來

    $("#fadein").click(function(){$("#1").fadeIn("slow")});

    ②淡出效果

    fadeOut(speed,[callback])  通過不透明度的變化逐漸將匹配元素隱藏起來

    ③自定義不透明度

    淡入或淡出的最終結果為自定義的透明度

    fadeTo(speed,opacity,[callback])  opacity的值域是0~1之間

    4.自定義動畫效果

    ①自定義動畫

    animate(params,duration,[easing],[callback])  返回值:jQuery  引數-params:一個包含類似CSS樣式設定的json物件,該物件決定了匹配元素要變成什麼樣子,如:{height:"100%",width:"70%",fontSize:"4em",color:"white"}但這些樣式屬性的名字與CSS的命名不同,它們使用駱駝命名法如fontSize 而在CSS中是font-size  duration:類似於前面幾個函式的speed引數,表示匹配元素從開始變化到最終結束變化的時長,其值的設定也一樣String,Number  easing:這個不太明白,要使用的擦除效果的名稱(需要外掛支援),預設jQuery提供linear和swing|String  callback:回撥函式,表示函式結束後執行什麼

    $(function(){
    
    $("#3").mouseover(function(){$(this).stop().animate({left:"0px"})
    
    }).mouseout(function(){$(this).stop().animate({left:"-180px"},3000)})
    
    })

    以上實現了我們經常在網頁上見的滑動框的效果,一開始框在瀏覽器左側露出20px,當滑鼠滑到上面時框全部露出,滑鼠滑出框時框又只露出20px, 我們看到params中的樣式屬性都出現在了"原來的樣子中-style屬性中"。另外對於位置變化的動畫效果,要先給元素定位,如本處的position:absolute。這個例子中另外一個需要注意的是stop()函式:停止所有在指定元素上正在執行的動畫。

    $("#3").mouseover(function(){$(this).stop().animate({height:"toggle","width:"toggle"})})

    如上樣式屬性值設成toggle的話表示在有和無之間進行切換

    ②jQuery動畫佇列

    把針對某個匹配元素的多個動畫操作放入一個佇列中進行管理,這是預設設定,這樣佇列中的動畫會按先後順序一個一個執行

    如果不希望某個動畫按順序執行,而是希望它最先執行,可以如下設定animate()函式,這是animate函式的有一種寫法,它將除parmas以外的引數也用一個json物件來表示

    $("#id").animate(parmas,{queue:false,duration:1000}).animate(parmas,{queue:false,duration:1000})

    以上倆動畫會同時執行,總耗時1秒,而

    $("#id").animate(parmas,{duration:1000}).animate(parmas,{duration:1000})

    這倆動畫會一個一個執行,總耗時2秒

    以上所講的所有動畫函式均屬於動畫佇列函式

    它們可以被佇列控制函式所控制

    當然佇列控制函式不僅僅只能控制動畫佇列函式,也能控制其他普通函式

    如佇列控制函式queue()函式