首頁 > web前端 > js教程 > 再JavaScript的jQuery庫中編寫動畫效果的指南_基礎知識

再JavaScript的jQuery庫中編寫動畫效果的指南_基礎知識

WBOY
發布: 2016-05-16 15:45:19
原創
1173 人瀏覽過

jquery中常用的動畫的方法就是hide()與show().

$(element).hide()這段程式碼可以與此相等element.css("display","none")

 在hide(time)與show(time)中填入事件,可以慢慢消失跟隨。可以修改元素的多個樣式,高度,寬度,不透明度。

另一組方法fadeIn()與fadeOut()這個與hide跟show不同的是,使用hide或show的時候會改變網頁的高度,而fadeIn與fadeOut則不會。


$("#panel h5.head").toggle(function(){                    $(this).addClass("highlight fadeOut(1000);                },function(){              (this).removeClass("highlight");                    $(this).next("div .content").fadeIn(改變高度。


動畫方法概括

2015813161335011.jpg (631×495)

動畫隊列


(1)一組元素上的動畫效果。


a)當在一個animate()方法中應用多個屬性時,動畫是同時發生的。


b)當以鍊式的寫法應用動畫方法時,動畫是依照順序發生的。


(2)多組元素上的動畫效果


a)預設情況下,動畫都是同時發生的。


b)當以回呼的形式應用動畫方式時,動畫是按照回呼順序發生的。


另外,在動畫方法中,要注意其他非動畫的方法會插隊,例如css()方法,要使這些非動畫的方法也按照順序來執行,需要把這些方法寫在動畫方法的回呼函數中。


舉一個animate的例子:

$(“#id”).animat({left:”400px”,top:”300px”},3000,function(){


     $(this).css(“border”,”1px solid blue”);


});

登入後複製



若想要動畫停止,需要在animate()方法前插入stop()方法


例如:$(“#id”).stop().animate()注意stop中的兩個參數。


判斷元素是否在動畫狀態的方法時:

$(element).is(“:animated”);
登入後複製


jQuery 可以很方便的為頁面中的元素添加一些動態效果,可以用其內建效果,也可以自己定義效果。

以下是一些內建的效果方法:

  • $.fn.show 顯示所選的元素
  • $.fn.hide 隱藏所選的元素
  • $.fn.fadeIn 淡入
  • $.fn.fadeOut 淡出
  • $.fn.slideDown 以垂直滑動的效果來顯示元素
  • $.fn.slideUp 透過垂直華東的效果來隱藏元素
  • $.fn.slideToggle 顯示滑動或隱藏滑動互動執行

一個簡單的例子:

$('h1').show();

登入後複製

設定動畫效果的長度

對於 $.fn.show 和 $.fn.hide 而言,預設其時長是 0,其它效果的預設時長一般是 400 毫秒,當然也自己設定時長:

$('h1').fadeIn(300);   // 300 毫秒
$('h1').fadeOut('slow'); // slow 是内建的速度常量

登入後複製

jQuery 預設的速度常數都位於 jQuery.fx.speeds 物件中:

speeds: {
  slow: 600,
  fast: 200,
  // Default speed
  _default: 400
}

登入後複製

我們也可以擴充這個對象,加入自己常用的速度值:

jQuery.fx.speeds.blazing = 100;
jQuery.fx.speeds.turtle = 2000;

登入後複製

回呼函數

如果想在動畫效果結束後再執行一些程式碼,那麼可以給這些動畫方法換入一個回呼函數:

$('div.old').fadeOut(300, function() {
 $(this).remove();
});

登入後複製

如果選擇器中沒有符合到任何元素,那麼回呼函數也不會被執行,所以在執行回呼函數前做個判斷是有必要的:

var $thing = $('#nonexistent');

var cb = function() {
  console.log('done!');
};

if ($thing.length) {
  $thing.fadeIn(300, cb);
} else {
  cb();
}

登入後複製

自訂動畫方法

jQuery 中的$.fn.animate 方法可以用來擴展我們的自訂動畫,主要是透過animate 方法設定元素CSS 屬性來實現的,設定元素CSS 屬性的時候可以使用絕對值,也可以使用相對值:

$('div.funtimes').animate(
  {
    left : "+=50",
    opacity : 0.25
  },
  300, // 时长
  function() { console.log('done!'); // 回调函数
});

登入後複製

但是,用 $.fn.animate 建立自訂動畫效果時,就無法改變元素的顏色。如果要建立顏色動畫,需要依賴其它一些顏色插件。
動畫的風格

jQuery 內建的動畫風格有兩種:swing 和 linear

$('div.funtimes').animate(
  {
    left : [ "+=50", "swing" ],
    opacity : [ 0.25, "linear" ]
  },
  300
);

登入後複製

控制動畫

jQuery 提供了幾個方法用來控制動畫的執行:

$.fn.stop 停止目前正在執行的動畫

$.fn.delay 讓動畫暫停一段時間:

$('h1').show(300).delay(1000).hide(300);

jQuery.fx.off :關閉動畫的過度效果,相當於把時長設為 0。


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板