亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery下的動畫處理總結

2019-11-20 21:54:25
字體:
來源:轉載
供稿:網友

queue()/ dequeue()
這兩個方法就像Ajax的XMLHttpRequest對象一樣的隱蔽,不為常人所知。這兩個方法在動畫處理的時候很有用,我們經常會寫一些這樣的代碼

復制代碼 代碼如下:

$('#test').animate({
            "width": "300px",
            "height": "300px",
            "opacity":"1"
        });

這樣test div的height、width、opacity是同時變化的,有時候我們不希望同步執行,而是形狀的變化和透明度的變化分開,先變成300*300的div,然后透明度再逐漸變化,我們需要這么寫

復制代碼 代碼如下:

$('#test').animate({
            "width": "300px",
            "height": "300px",
        }, function () {
            $('#test').animate({ "opacity": "1" });
        });

同學們可以想象一下要是有十個動畫流程,那代碼是什么樣的,queue()和dequeue()可以解決此類問題,為所有的流程方法見一個隊列,讓function依次調用,先看一下語法


queue( [queueName ], newQueue ) 操作欲執行隊列方法

第一個參數是隊列名稱,不寫的話默認是fx

第二個參數可以是一個函數數組,存放所有隊列函數,也可以是一個回掉函數,用于向隊列中添加新函數

dequeue( [queueName ] ) 為匹配元素執行隊列中的下一個function

每次調用此方法執行隊列中下一函數

復制代碼 代碼如下:

var q = [
            function () {
                $(this).animate({
                    "width": "200px",
                    "height":"200px"
                }, next)
            },
            function () {
                $(this).animate({
                    "width": "400px",
                    "height": "400px"
                }, next);
            }
        ];

        function next(){
            $('#test').dequeue('myQueue');
        }

        $('#test').queue('myQueue', q);
        next();

上面代碼就是可以讓test div先變成200*200的,然后再變為400*400的,每個動畫都執行回掉函數,調用隊列中下一個方法,兩個動畫依次執行,如果在執行期想再添加某個函數可以這樣

復制代碼 代碼如下:

var q = [
            function () {
                $(this).animate({
                    "width": "200px",
                    "height":"200px"
                }, next)
            },
            function () {
                $(this).animate({
                    "width": "400px",
                    "height": "400px"
                }, next);
            }
        ];

        function next(){
            $('#test').dequeue('myQueue');
        }

        $('#test').queue('myQueue', q);
        next();
        $('#test').queue('myQueue',function () {
            $(this).slideUp().dequeue('myQueue');
        });

總而言之這兩個方法就是為了方便動畫按照預定次序執行

clearQueue() /stop()

這兩個方法主要是為了取消動畫

clearQueue( [queueName ] ) 將隊列中函數清空

stop( [queue ] [, clearQueue ] [, jumpToEnd ] ) 用于停止正在進行的動畫

queue:正在進行的動畫隊列名稱

clearQueue:默認值為false,是否將隊列本身也清空

jumpToEnd:默認值為false,是否立即執行完動畫

如果想停止剛才動畫可以這么寫

復制代碼 代碼如下:
$('#test').clearQueue('myQueue');

這樣寫不會不會終止動畫,只是當前動畫執行完后,不會再調用隊列中下一個動畫(隊列被清空了嘛,沒有下一個了),如果想立即停止動畫,可以這么寫

復制代碼 代碼如下:
$('#test').stop();

至于停止動畫是暫停還是立即執行完,就學要配置stop()的參數了

slideDown()/ slideUp()/ slideToggle()

slide效果在做動畫的時候經常會使用,尤其是菜單,這三個函數很簡單,就是元素收起/伸展/自動判斷收起伸展,但是其參數不僅僅是duration,我們還能加一些其他的控制,看看API中的介紹,這Sanger函數參數類似,那slideUp舉例

slideUp( [duration ] [, easing ] [, complete ] ) easing是漸變方式,這個我從來沒有手工改動過,duration不寫的話,默認會用大概一秒的時間完成動畫

slideUp(options)

options中常用的配置有

duration:動畫時間

queue:這個看了上面自然會懂

step:動畫過程中每次屬性改動時執行

complete:動畫完成時執行

start:動畫開始時執行

always:動畫被終止或者意外發生沒有執行完時發生

這三個函數在執行的時候會修改元素height,在sideUp()執行完后會把height復原,并把diaplay設為none

fadeIn()/ fadeOut()/ fadeToggle()/ fadeTo()

fadeIn()/ fadeOut()/ fadeToggle() 的用法和slide系列類似,不再一一說明,只不過這三個函數修改的時元素的透明度,fadeOut()函數在執行完后會將元素opacity復原,并把display屬性設為none

fadeTo( duration, opacity [, easing ] [, complete ] ) fadeTo()方法就沒有那么復雜了,但是fadeTO()的duration和opacity不是可省略的,必須寫

show()/ hide()/ toggle()

這三個函數的用法和slide系列一樣,但是在效果上有幾點兒不同

1.如果參數duration不寫,那么回立即執行沒有動畫

2.這個動畫同時修改height、width、opacity屬性

3.hide()執行完成后會將height、width、opacity屬性還原,并把display設為none

animate()
有些復雜的動畫靠上面幾個函數不能夠實現,這時候就是強大的animate派上用場的時候了,animate()有兩種用法

.animate( properties [, duration ] [, easing ] [, complete ] )

大部分屬性都不用解釋,properties是個json,屬性的值可以是字面量、function、”toggle”、簡單表達式,如果是function會把返回值賦給屬性,熟悉jQuery的同學肯定明白“toggle”是什么,就是讓一個屬性在初始值和最小值之間切換,能夠使用toggle的屬性有width、height、opacity等包含數字值屬性,簡單表達式是+=、-=等,比如可以這么些 “width”:”+=10px”。

復制代碼 代碼如下:

$( "#block" ).animate({
    width: "70%",
    opacity: 0.4,
    marginLeft: "0.6in",
    fontSize: "3em",
    borderWidth: "+=10px"
  }, 1500 );

如果傳入了回掉函數,該函數會在動畫執行完后調用

.animate( properties, options )

這種用法更為靈活,properties和前一個用法一樣,常用options有

duration:動畫時間

queue:function隊列

step:每次屬性調整的回掉函數

complete:完成動畫的回掉函數

start:動畫開始的時候調用

always:動畫被終止或者意外發生沒有執行完時發生

要不說jQuery好用,上面這幾個配置是不是很熟悉呢

復制代碼 代碼如下:

$( "#book" ).animate({
    width: "toggle",
    height: "toggle"
  }, {
    duration: 5000,
    specialEasing: {
      width: "linear",
      height: "easeOutBounce"
    },
    complete: function() {
      $( this ).after( "<div>Animation complete.</div>" );
    }
  });

hover()
嚴格說這個并不是個動畫函數,但是由于低版本IE的hover對很多元素都不起作用,用CSS無法完成很多動作,所以經常需要使用JavaScript進行haver事件的處理。

.hover( handlerIn(eventObject), handlerOut(eventObject) )

方法很簡單,不多介紹了,這樣就能把mousein 和mouseout寫在一起了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久一区| 成人免费高清完整版在线观看| 久久久精品视频在线观看| 久久精品电影网站| 亚洲一区二区自拍| 精品自拍视频在线观看| 亚洲精品理论电影| 国产成人av在线播放| 高潮白浆女日韩av免费看| 亚州av一区二区| 亚洲尤物视频网| 国产精品v片在线观看不卡| 国产欧美在线播放| 国产日韩av高清| 日韩精品极品在线观看| 日韩一区二区在线视频| 日韩av中文字幕在线播放| 成人福利网站在线观看| 亚洲一区二区在线| 国产免费久久av| 国内揄拍国内精品少妇国语| 日韩精品视频观看| 亚洲视频国产视频| 成人av.网址在线网站| 国产精品视频成人| 911国产网站尤物在线观看| 国产欧美久久一区二区| 亚洲色图美腿丝袜| 久久国产精品99国产精| 欧美又大又硬又粗bbbbb| 亚洲一区二区三区四区在线播放| 97国产一区二区精品久久呦| 国产精品视频网址| 欧美大片免费观看| 亚洲成年人影院在线| 亚洲欧美制服丝袜| 亚洲女成人图区| 日韩高清免费观看| 在线看日韩av| 亚洲成色777777女色窝| 亚洲国产精品福利| 欧美性猛交xxxx免费看| 亚洲大尺度美女在线| 亚洲午夜性刺激影院| 中日韩美女免费视频网站在线观看| 日韩av不卡在线| 久久天堂av综合合色| 久久久国产精品亚洲一区| 国产在线拍揄自揄视频不卡99| 8050国产精品久久久久久| 久久视频免费观看| 97精品免费视频| 日韩视频永久免费观看| 成人h片在线播放免费网站| 久久亚洲春色中文字幕| 永久免费毛片在线播放不卡| 欧美国产日韩一区二区| 日韩av在线免费播放| 久久久久久久一区二区| 欧美精品在线网站| 亚洲欧美日韩天堂| 久久精品国产久精国产一老狼| 欧美精品videosex极品1| 2019最新中文字幕| 全色精品综合影院| 国产成人激情小视频| 成人免费观看a| 国产欧美日韩免费看aⅴ视频| 国产成人avxxxxx在线看| 91国产高清在线| 欧美性猛交xxxx免费看久久久| 国产精品入口日韩视频大尺度| 国产97在线|亚洲| 亚洲精品欧美日韩| 欧美肥老太性生活视频| 国产欧美精品一区二区三区-老狼| 2024亚洲男人天堂| 国产主播精品在线| 日韩精品在线电影| 色先锋久久影院av| 亚洲自拍偷拍在线| 国产精品美女久久久久久免费| 欧美日韩午夜视频在线观看| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品欧美激情| 国内成人精品视频| 九九久久综合网站| 日韩精品免费在线| 亚洲三级av在线| 亚洲一区二区在线| 伊人青青综合网站| 欧美激情免费在线| 亚洲成色999久久网站| 欧美在线亚洲一区| 欧美激情亚洲自拍| 欧美日韩国产成人在线观看| 亚洲欧美精品伊人久久| 欧美黄色性视频| 久久综合色影院| 最新日韩中文字幕| 在线成人激情黄色| 精品久久久久久电影| 亚洲国产毛片完整版| 国外日韩电影在线观看| 久久伊人精品视频| 91高清视频免费| 97香蕉超级碰碰久久免费软件| 一个色综合导航| 色哟哟入口国产精品| 久久久女人电视剧免费播放下载| 日韩国产一区三区| 91精品视频免费看| 黑人精品xxx一区一二区| 韩国精品美女www爽爽爽视频| 亚洲欧美日韩视频一区| 日韩h在线观看| 亚洲欧美另类在线观看| 国产精品久久久av久久久| 国产精品久久久久久婷婷天堂| 国产精品欧美亚洲777777| 国产视频亚洲视频| 亚洲人成免费电影| 国内精久久久久久久久久人| 久久免费精品日本久久中文字幕| 久久精品人人做人人爽| 欧美麻豆久久久久久中文| 久久久噜久噜久久综合| 亚洲午夜未满十八勿入免费观看全集| 国产日韩在线一区| 欧美在线视频观看免费网站| 日韩电影中文字幕| 欧美大学生性色视频| 国产精品极品美女粉嫩高清在线| 国产亚洲欧洲黄色| 亚洲女人天堂av| www.久久色.com| 亚洲日韩第一页| 精品久久久久久久久久久| 亚洲成人性视频| 中文字幕亚洲激情| 91精品国产综合久久香蕉的用户体验| 欧美激情中文字幕乱码免费| 在线观看精品自拍私拍| 欧美激情一区二区三区久久久| 亚洲精品国精品久久99热一| 欧美午夜宅男影院在线观看| 亚洲国产精品yw在线观看| 国产精品视频网址| 欧美视频在线观看免费网址| 久久久久久久久久久网站| 欧美精品在线观看91| 国产精品美女主播在线观看纯欲| 亚洲精品一区二区三区不| 成人激情电影一区二区| 国产日韩精品在线观看| 欧美大胆a视频| 亚洲小视频在线| 欧美日韩国产精品一区二区三区四区| 日韩av免费在线观看| 91成人免费观看网站| 欧美一区二区三区免费观看| 欧美成人四级hd版| 91av在线网站| 亚洲淫片在线视频|