jQuery中動畫的實現

山有木xi發表於2020-04-14

jQuery是個快速、簡潔的JavaScript框架,封裝了JavaScript的常用功能,提供了一種簡便的JavaScript設計模式,最佳化HTML文件操作,事件處理,動畫設計和ajax互動,其中最核心的包括DOM和BOM,但是 提供最方便的操作我認為是動畫,這也是jQuery最吸引人的地方之一,透過jQuery的動畫能夠快速輕鬆的為網頁提供非常精彩的視覺效果

  • show和hide

show和hide方法是jQuery中最基本的動畫方法,在一個元素呼叫hide時,其實在HTML文件中會將該元素的display樣式改為“none”

$("#id").hide()

其實等於

$("#id").css("display","none")

當元素隱藏起來以後,使用show將元素的display樣式設定為先前的顯示狀態"block"/"inline"

我們可以使用toggle(模擬連續點選事件)來實驗這兩個方法

$(function(){
 $(#one).toggle(function(){
    $(this).next().hide();
},function(){
    $(this).next().show();
})
})

同時我們也可以在show裡面放一個引數“顯示速度”

$("#id").hide(1000)

讓元素在1000毫秒內顯示出來

  • fadeIn和fadeOut

和show不一樣的是,fadeIn和fadeOut只改變元素的不透明度,fadeOut透過透明度讓元素的display為none,fadeIn相反

$(function(){
 $(#one).toggle(function(){
    $(this).next().fadeOut();
},function(){
    $(this).next().fadeIn();
})
})
  • slideUp和slideDown

slideUp和slideDown 方法只會改變元素的高度,slideUp透過高度讓元素的display為none,slideDown則相反

$(function(){
 $(#one).toggle(function(){
    $(this).next().slideUp();
},function(){
    $(this).next().slideDown();
})
})
  • animate(params,speed,callback)

params:一個包含樣式屬性及值的對映

speed:速度,可選

callback:動畫完成時執行的函式,可選

$(function(){
 $(#one).click(function(){
   $(this).animate({left:"+=500px"},3000,function({
   $(this).css("border","5px solid blue");
   });
})
})

可以看到,animate幾乎可以做到任意的改變動畫,甚至上面說的slideUp,slideDown,fadeIn,fadeOut都可以改變成animate來實現

這樣看,好像很完美,但是有一個問題,這個問題也是所有動畫的問題,以上面的程式碼為例子,當一個使用者點選一下就執行"+=500px",如果使用者3秒內點選了100次呢,1000次呢,動畫還會繼續執行,但是這個時候如果再點選其他的按鈕就會被佇列擠到後面去,需要等這個動畫全部執行完畢才會執行,這就需要 判斷是否處於動畫狀態和停止動畫

if(!$(#two).is(":animated")){
{

用上面的程式碼就可以執行,先判斷是否處於動畫狀態,如果沒有則新增新的程式碼

但是光知道是否處於動畫狀態還不夠,還需要停止動畫

$(function(){
 $(#one).hover(function(){
    $(this).stop().next().slideUp();
},function(){
    $(this).stop().next().slideDown();
})
})

延遲動畫

delay(1000)//括號內為時間引數

除此之外還有 其他的動畫方法

  1. toggle(speed,[callback]):切換元素的可見狀態

  2. slideToggle (speed,[easing],[callback]):透過高度變化來切換可見狀態

  3. fadeTo (speed,opacity,[callback]):可以把元素的不透明度以漸進的方式調整到指定的值

  4. fadeToggle (speed ,[easing],[callback]):透過不透明度變化來切換元素的可見性

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2686044/,如需轉載,請註明出處,否則將追究法律責任。

相關文章