最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery動(dòng)畫_動(dòng)力節(jié)點(diǎn)節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年07月04日 10:11:00   作者:liaoxuefeng  
用JavaScript手動(dòng)實(shí)現(xiàn)動(dòng)畫效果,需要編寫非常復(fù)雜的代碼。下面給分享jQuery內(nèi)置的幾種動(dòng)畫樣式,需要的朋友參考下吧

用JavaScript實(shí)現(xiàn)動(dòng)畫,原理非常簡(jiǎn)單:我們只需要以固定的時(shí)間間隔(例如,0.1秒),每次把DOM元素的CSS樣式修改一點(diǎn)(例如,高寬各增加10%),看起來(lái)就像動(dòng)畫了。

但是要用JavaScript手動(dòng)實(shí)現(xiàn)動(dòng)畫效果,需要編寫非常復(fù)雜的代碼。如果想要把動(dòng)畫效果用函數(shù)封裝起來(lái)便于復(fù)用,那考慮的事情就更多了。

使用jQuery實(shí)現(xiàn)動(dòng)畫,代碼已經(jīng)簡(jiǎn)單得不能再簡(jiǎn)化了:只需要一行代碼!

讓我們先來(lái)看看jQuery內(nèi)置的幾種動(dòng)畫樣式:

show / hide

直接以無(wú)參數(shù)形式調(diào)用show()和hide(),會(huì)顯示和隱藏DOM元素。但是,只要傳遞一個(gè)時(shí)間參數(shù)進(jìn)去,就變成了動(dòng)畫:

var div = $('#test-show-hide');
div.hide(3000); // 在3秒鐘內(nèi)逐漸消失

時(shí)間以毫秒為單位,但也可以是'slow','fast'這些字符串:

var div = $('#test-show-hide');
div.show('slow'); // 在0.6秒鐘內(nèi)逐漸顯示

toggle()方法則根據(jù)當(dāng)前狀態(tài)決定是show()還是hide()。

slideUp / slideDown

你可能已經(jīng)看出來(lái)了,show()和hide()是從左上角逐漸展開(kāi)或收縮的,而slideUp()和slideDown()則是在垂直方向逐漸展開(kāi)或收縮的。

slideUp()把一個(gè)可見(jiàn)的DOM元素收起來(lái),效果跟拉上窗簾似的,slideDown()相反,而slideToggle()則根據(jù)元素是否可見(jiàn)來(lái)決定下一步動(dòng)作:

var div = $('#test-slide');
div.slideUp(3000); // 在3秒鐘內(nèi)逐漸向上消失

fadeIn / fadeOut

fadeIn()和fadeOut()的動(dòng)畫效果是淡入淡出,也就是通過(guò)不斷設(shè)置DOM元素的opacity屬性來(lái)實(shí)現(xiàn),而fadeToggle()則根據(jù)元素是否可見(jiàn)來(lái)決定下一步動(dòng)作:

var div = $('#test-fade');
div.fadeOut('slow'); // 在0.6秒內(nèi)淡出

自定義動(dòng)畫

如果上述動(dòng)畫效果還不能滿足你的要求,那就祭出最后大招:animate(),它可以實(shí)現(xiàn)任意動(dòng)畫效果,我們需要傳入的參數(shù)就是DOM元素最終的CSS狀態(tài)和時(shí)間,jQuery在時(shí)間段內(nèi)不斷調(diào)整CSS直到達(dá)到我們?cè)O(shè)定的值:

var div = $('#test-animate');
div.animate({
  opacity: 0.25,
  width: '256px',
  height: '256px'
}, 3000); // 在3秒鐘內(nèi)CSS過(guò)渡到設(shè)定值

animate()還可以再傳入一個(gè)函數(shù),當(dāng)動(dòng)畫結(jié)束時(shí),該函數(shù)將被調(diào)用:

var div = $('#test-animate');
div.animate({
  opacity: 0.25,
  width: '256px',
  height: '256px'
}, 3000, function () {
  console.log('動(dòng)畫已結(jié)束');
  // 恢復(fù)至初始狀態(tài):
  $(this).css('opacity', '1.0').css('width', '128px').css('height', '128px');
});

實(shí)際上這個(gè)回調(diào)函數(shù)參數(shù)對(duì)于基本動(dòng)畫也是適用的。

有了animate(),你就可以實(shí)現(xiàn)各種自定義動(dòng)畫效果了:

animate()

串行動(dòng)畫

jQuery的動(dòng)畫效果還可以串行執(zhí)行,通過(guò)delay()方法還可以實(shí)現(xiàn)暫停,這樣,我們可以實(shí)現(xiàn)更復(fù)雜的動(dòng)畫效果,而代碼卻相當(dāng)簡(jiǎn)單:

var div = $('#test-animates');
// 動(dòng)畫效果:slideDown - 暫停 - 放大 - 暫停 - 縮小
div.slideDown(2000)
  .delay(1000)
  .animate({
    width: '256px',
    height: '256px'
  }, 2000)
  .delay(1000)
  .animate({
    width: '128px',
    height: '128px'
  }, 2000);
}
</script>

因?yàn)閯?dòng)畫需要執(zhí)行一段時(shí)間,所以jQuery必須不斷返回新的Promise對(duì)象才能后續(xù)執(zhí)行操作。簡(jiǎn)單地把動(dòng)畫封裝在函數(shù)中是不夠的。

為什么有的動(dòng)畫沒(méi)有效果

你可能會(huì)遇到,有的動(dòng)畫如slideUp()根本沒(méi)有效果。這是因?yàn)閖Query動(dòng)畫的原理是逐漸改變CSS的值,如height從100px逐漸變?yōu)?。但是很多不是block性質(zhì)的DOM元素,對(duì)它們?cè)O(shè)置height根本就不起作用,所以動(dòng)畫也就沒(méi)有效果。

此外,jQuery也沒(méi)有實(shí)現(xiàn)對(duì)background-color的動(dòng)畫效果,用animate()設(shè)置background-color也沒(méi)有效果。這種情況下可以使用CSS3的transition實(shí)現(xiàn)動(dòng)畫效果。

相關(guān)文章

  • jquery css實(shí)現(xiàn)郵箱自動(dòng)補(bǔ)全

    jquery css實(shí)現(xiàn)郵箱自動(dòng)補(bǔ)全

    這篇文章主要為大家詳細(xì)介紹了jquery css實(shí)現(xiàn)郵箱自動(dòng)補(bǔ)全功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • jqGrid jQuery 表格插件測(cè)試代碼

    jqGrid jQuery 表格插件測(cè)試代碼

    在逛博客中無(wú)意中看到這個(gè)插件,一下就吸引住了我,于是就自己在網(wǎng)上找了些資料實(shí)踐了一下
    2011-08-08
  • jQuery中DOM操作實(shí)例分析

    jQuery中DOM操作實(shí)例分析

    這篇文章主要介紹了jQuery中DOM操作方法,實(shí)例分析了dom對(duì)象的創(chuàng)建、屬性的修改、樣式的修改、動(dòng)態(tài)綁定事件等技巧,需要的朋友可以參考下
    2015-01-01
  • jQuery中驗(yàn)證表單提交方式及序列化表單內(nèi)容的實(shí)現(xiàn)

    jQuery中驗(yàn)證表單提交方式及序列化表單內(nèi)容的實(shí)現(xiàn)

    之前項(xiàng)目中使用的表單提交方式,使用form()方法可以將提交事件脫離submit按鈕,綁定到任何事件中,下面有個(gè)不錯(cuò)的示例大家可以參考下
    2014-01-01
  • jQuery中animate()的使用方法及解決$(”body“).animate({“scrollTop”:top})不被Firefox支持的問(wèn)題

    jQuery中animate()的使用方法及解決$(”body“).animate({“scrollTop”:top})

    這篇文章主要介紹了關(guān)于jQuery中animate()的使用方法及解決$("body").animate({"scrollTop":top})不被Firefox支持的問(wèn)題,文中介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-04-04
  • 通過(guò)jQuery源碼學(xué)習(xí)javascript(二)

    通過(guò)jQuery源碼學(xué)習(xí)javascript(二)

    昨天寫了篇通過(guò)jQuery源碼學(xué)習(xí)javascript(一),里面有一個(gè)定義對(duì)象C的方法,我早期也沒(méi)有太注意這個(gè)方面的技術(shù)細(xì)節(jié)。后來(lái)我查了一下資料,發(fā)現(xiàn)里面有很多巧的地方。今天與大家分享
    2012-12-12
  • jQuery實(shí)現(xiàn)指定區(qū)域外單擊關(guān)閉指定層的方法【經(jīng)典】

    jQuery實(shí)現(xiàn)指定區(qū)域外單擊關(guān)閉指定層的方法【經(jīng)典】

    這篇文章主要介紹了jQuery實(shí)現(xiàn)指定區(qū)域外單擊關(guān)閉指定層的方法,可實(shí)現(xiàn)在彈出層外任意位置點(diǎn)擊關(guān)閉彈出層的功能,涉及jQuery事件操作方法,包含了詳盡的代碼功能說(shuō)明,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2016-06-06
  • Jquery中map函數(shù)的用法

    Jquery中map函數(shù)的用法

    這篇文章主要介紹了Jquery中map函數(shù)的用法的相關(guān)資料,map()這個(gè)函數(shù)可以用在不同的地方,非常實(shí)用,感興趣的朋友參考下吧
    2016-06-06
  • jquery代碼實(shí)現(xiàn)簡(jiǎn)單的隨機(jī)圖片瀑布流效果

    jquery代碼實(shí)現(xiàn)簡(jiǎn)單的隨機(jī)圖片瀑布流效果

    瀑布流布局最近真的很流行,很多人都跟我一樣想知道是怎么做出來(lái)的吧,經(jīng)過(guò)網(wǎng)上搜索大量的參考結(jié)合N邊的實(shí)驗(yàn)今天終于被我寫出來(lái)了,這里分享給大家,有需要的小伙伴參考下吧。
    2015-04-04
  • 淺談window.onbeforeunload() 事件調(diào)用ajax

    淺談window.onbeforeunload() 事件調(diào)用ajax

    下面小編就為大家?guī)?lái)一篇淺談window.onbeforeunload() 事件調(diào)用ajax。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06

最新評(píng)論

枣庄市| 金山区| 北碚区| 大田县| 靖远县| 信宜市| 南宫市| 民乐县| 米脂县| 桂阳县| 江山市| 崇阳县| 宜宾县| 顺昌县| 红桥区| 铁力市| 临武县| 延边| 修文县| 乐平市| 安西县| 黎川县| 锦屏县| 琼结县| 滦南县| 广宗县| 民勤县| 临洮县| 中方县| 万载县| 宜黄县| 桃源县| 广东省| 惠水县| 上虞市| 上虞市| 左贡县| 钟山县| 仙游县| 普安县| 寿光市|