中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

深入理解jquery自定義動畫animate()
來源:易賢網 閱讀:1432 次 日期:2016-06-23 16:40:12
溫馨提示:易賢網小編為您整理了“深入理解jquery自定義動畫animate()”,方便廣大網友查閱!

下面小編就為大家帶來一篇深入理解jquery自定義動畫animate()。小編覺得挺不錯的,現在分享給大家,也給大家做個參考。

在以前很長一段時間里,網頁上的各種特效還需要采用flash 在進行。但最近幾年里,我們已經很少看到這種情況了,絕大部分已經使用JavaScript 動畫效果來取代flash。

這里說的取代是網頁特效部分,而不是動畫。網頁特效比如:漸變菜單、漸進顯示、圖片輪播等;而動畫比如:故事情節廣告、MV 等等。 

如果復制當前代碼進行在本地測試的時候,請注意把不需要(其他功能展示)的代碼注釋掉。

代碼如下:

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

  <title></title> 

  <script src="jquery-1.11.2.js"></script> 

  <style type="text/css"> 

    #box { 

      width: 100px; 

      height: 100px; 

      background-color: red; 

      position:absolute; 

    } 

    #pox { 

      width: 100px; 

      height: 100px; 

      background-color: green; 

      position: absolute; 

      top: 200px; 

    } 

  </style> 

</head> 

<body> 

  <input type="button" class="button" value="開始" /><input type="button" class="stop" value="停止" /> 

  <input type="button" class="ani" value="查找運動中的動畫" /> 

  <div id="box">box</div> 

  <div id="pox">pox</div> 

</body> 

</html> 

<script type="text/javascript"> 

  $(function () { 

    $(".button").click(function () { 

      $("#box").animate({ 

        left: "300px"  //要想使用left top bottom right這種方向性的屬性 先必須對"#box元素設置CSS 絕對定位 

      }) 

    }) 

    //自定義動畫中,每次開始運動都必須是初始位置或初始狀態,而有時我們想通過當前位置或狀態下再進行動畫。jQuery 提供了自定義動畫的累加、累減功能。 

    $(".button").click(function () { 

      $("#box").animate({ 

        left: "+=50px" //每點擊一次.button按鈕,#box元素就往左移動50px 

      }) 

    }) 

    //-------------------------------------同步動畫  

    //一個CSS 變化就是一個動畫效果,下面的例子中,已經有四個CSS 變化(分別是width,height,opacity,fontSize的變化)實現了多重動畫同步運動的效果。(所謂多重同步運動的效果就是,這四個css屬性的值在同一時間,同時變化) 

    $(".button").click(function () { 

      $("#box").animate({ 

        width: "300px", 

        height: "200px", 

        opacity:0.5, //透明度為0.5 注:透明度的值在0-1之間 

        fontSize:"200px", //字體大小設為30px 

      }) //第一個參數:是一個對象,他是鍵值對的css 

    }) 

    //--------------------------------------列隊動畫  

    //通過回調函數現實隊列動畫。(效果就是:首先#box的寬度變為300px 然后高度變為200px,然后透明度變為50%,字體大小變為150px 最后彈出一個“完畢”) 

    $(".button").click(function () { 

      $("#box").animate({ width: "300px"}, 1000, function(){ 

        $("#box").animate({height:"200px"},1000,function(){ 

          $("#box").animate({opacity:0.5},1000,function(){ 

            $("#box").animate({fontSize:"150px"},1000,function(){alert("完畢")}) 

          }); 

        }); 

      }); 

    }) 

    //在同一個元素的基礎上,使用鏈式調用也可以實現列隊動畫 

    $(".button").click(function () { 

      $("#box") 

        .animate({ width: "300px" }, 1000) 

        .animate({ height: "200px" }, 1000) 

        .animate({ opacity: 0.5 }, 1000) 

        .animate({ fontSize: "150px" }, 1000, function () { alert("列隊動畫執行完畢")}) 

    }); 

    //在同一個元素的基礎上,通過依次順序實現列隊動畫 (如果有多個元素則不能實現,兩個元素之間的動畫是同步的。) 

    $(".button").click(function () { 

      $("#box").animate({ width: "300px" }, 1000); 

      $("#box").animate({ height: "200px" }, 1000); 

      $("#box").animate({ opacity: 0.5 }, 1000); 

      $("#box").animate({ fontSize: "150px" }, 1000, function () { alert("列隊動畫執行完畢")}); 

    }) 

    //如果有多個元素則不能實現 不信請看下面代碼 (通過執行下面這段代碼,我們發現#box 與#pox這兩個元素的動畫是同時執行的,屬于#box的那兩段動畫是先執行 $("#box").animate({ width: "300px" }, 1000)然后再執行("#box").animate({ opacity: 0.5 }, 1000); 他們兩個有列隊動畫的效果) 而屬于#pox的兩段動畫是先執行 $("#pox").animate({ height: "200px" }, 1000)然后再執行 $("#pox").animate({ fontSize: "150px" }, 1000)他們兩個有列隊動畫的效果。 但是 $("#box").animate({ width: "300px" }, 1000)與$("#pox").animate({ height: "200px" }, 1000); 同時執行的。 $("#box").animate({ opacity: 0.5 }, 1000)與$("#pox").animate({ fontSize: "150px" }, 1000)是同時執行的。 

    //前面說了這么一大堆 其實就是: 

    //#box的第一條和第三條是列隊動畫 

    //#pox的第二條和第四條是列隊動畫 

    //#box的第一條和#pox的第二條是同步動畫 

    //#box的第三條和#pox的第四條是同步動畫 

    $(".button").click(function () { 

      $("#box").animate({ width: "300px" }, 1000); 

      $("#pox").animate({ height: "200px" }, 1000); 

      $("#box").animate({ opacity: 0.5 }, 1000); 

      $("#pox").animate({ fontSize: "150px" }, 1000, function () { alert("列隊動畫執行完畢")}); 

    }) 

    //那我們現在的需求是:不管你有幾個元素,我都要他們依次實現列隊動畫效果。(測試了一下,只能用這種回調函數嵌套的方式來實現了) 

    $(".button").click(function () { 

      $("#box").animate({ width: "300px" }, 1000, function () { 

        $("#pox").animate({ height: "200px" }, 1000, function () { 

          $("#box").animate({ height: "200px"}, 1000, function () { 

            $("#pox").animate({ fontSize: "150px" }, 1000, function () { alert("列隊動畫執行完畢") }); 

          }) 

        }) 

      }) 

    }) 

    // ---------------------------------動畫與非動畫 進行隊列 【queue()】 

    //我們知道動畫可以有列隊效果。但是一個普通的css(比如改變背景顏色)如果實現與動畫進行列隊呢? 

    $(".button").click(function () { 

      $("#box").slideUp(1000).slideDown(1000).css("background", "yellow") 

    }) 

    //本來我們是想要實現隊列動畫的,也就是先讓#box滑動隱藏,然后再讓它滑動顯示,最后讓它改變顏色。可是我們運行這段呢代碼,我們看到第一時間就執行了css("background","yellow")這段代碼。 

    //通過上面的代碼我們了解到 css()方法不是動畫方法,會和第一個動畫同時執行。也就是說非動畫不能列隊。 

    //現在問題又來了。我現在想要實現列隊動畫,也想非動畫和動畫一起列隊怎么辦呢? 其實我們可以使用回調函數實現的。請看下面的代碼 

    $(".button").click(function () { 

      $("#box") 

        .slideUp(1000) 

        .slideDown(1000, function () { $(this).css("background", "yellow") }) 

        .hide(3000); 

    }) 

    //但如果上面這樣的話,當列隊動畫繁多的時候,可讀性不但下降,而原本的動畫方法不夠清晰。所以,我們的想法是每個操作都是自己獨立的方法。那么jQuery 提供了一個類似于回調函數的方法:.queue() 

    $(".button").click(function () {  //三個動畫。 

      $("#box") 

        .slideUp(1000) 

        .slideDown(1000) 

        .queue(function () { $(this).css("background", "yellow");}) 

    }) 

    //現在,我們想繼續在.queue()方法后面再增加一個隱藏動畫,這時發現居然無法實現。這是.queue()特性導致的。有兩種方法可以解決這個問題,jQuery 的.queue()的回調函數可以傳遞一個參數,這個參數是next 函數,在結尾處調用這個next()方法即可再鏈式執行列隊動畫。 

    //鏈式編程實現隊列動畫 

    $(".button").click(function () { //四個動畫 

      $("#box") 

        .slideUp(1000) 

        .slideDown(1000) 

        .queue(function (next) { //這個next是一個函數 

          $(this).css("background", "yellow"); 

          next();}) 

        .hide(1000); 

    }); 

    //順序編程實現隊列動畫 我們看到使用順序調用的列隊,逐個執行,非常清晰 

    $(".button").click(function () { 

      $("#box").slideUp(1000); 

      $("#box").slideDown(1000); 

      $("#box").queue(function (next) { 

        $(this).css("background", "yellow"); 

        next(); }); 

      $("#box").hide(1000); 

    }); 

    //因為next 函數是jQuery1.4 版本以后才出現的,而之前我們普遍使用的是.dequeue()方法。意思為執行下一個元素列隊中的函數。 

    //使用.dequeue()方法執行下一個函數動畫 

    //$(".button").click(function () { 

    //  $('#box').slideUp('slow').slideDown('slow').queue(function () { 

    //    $(this).css('background', 'orange'); 

    //    $(this).dequeue(); //相當于上面的那句next() 只是這里的function()括號里不像上面那樣需要傳遞一個next函數 

    //  }).hide(1000) 

    //}); 

    //-----------------------------動畫的清除 【clearQueue()】 

    //jQuery 還提供了一個清理列隊的功能方法:.clearQueue()。把它放入一個列隊的回調函 數或.queue()方法里,就可以把剩下為執行的列隊給移除。 

    //清理動畫列隊 

    //假如我想在執行完第二個動畫那就就不再執行了。那么只要在第二個動畫的回調函數哪里添加一句$(this).clearQueue()就可以停止后面的列隊動畫了 

    $(".button").click(function () { 

        

      $("#box") 

        .slideUp(1000) 

        .slideDown(1000, function () { $(this).clearQueue() }) 

        .queue(function (next) { $(this).css("background", "yellow"); next() }) 

        .hide(1000); 

    }) 

    //那么如果獲取列隊動畫的長度呢?  

    function getQueueCount() { 

      return $("#box").queue("fx").length; //獲取當前列隊的長度,fx 是默認列隊的參數 

    } 

    //用法 

    $(".button").click(function () { 

      //下面這段代碼總共有slideUp,slideDown,queue,hide這四個動畫 

      $("#box") 

        .slideUp(1000, function () { alert(getQueueCount()) }) //執行到這一步的時候會打印出:4 它后面還有三個動畫,所以下一步的時候會打印出3 

        .slideDown(1000, function () { alert(getQueueCount()) }) //執行到這一步的時候會打印出:3 

        .queue(function (next) { alert(getQueueCount()); $(this).css("background", "yellow"); next() }) //執行到這一步的時候會打印出:2 

        .hide(1000, function () { alert(getQueueCount()) }); //執行到這一步的時候會打印出:1 

    }); 

    //---------------------------------動畫的停止【stop()】 

    //很多時候需要停止正在運行中的動畫,jQuery 為此提供了一個.stop()方法。它有兩個可選參數:.stop(clearQueue, gotoEnd);clearQueue 傳遞一個布爾值,代表是否清空未執行完的動畫列隊,gotoEnd 代表是否直接將正在執行的動畫跳轉到末狀態。 

    $(".button").click(function () { 

      $("#box") 

        .animate({left:"1000px"} ,3000) 

    }) 

    $(".stop").click(function () { 

      $("#box").stop(); //將#box這個元素的動畫停止掉。沒有參數的stop()方法只是單純的停止動畫 

    }) 

    //那下面再來了解下,列隊動畫的停止 

    $(".button").click(function () { 

      $("#box").animate({ left: "300px" },1000) 

           .animate({ bottom: "300px" }, 1000) 

           .animate({ width: "300px" }, 1000) 

           .animate({ height: "300px" }, 1000)                   

    }) 

    //$(".stop").click(function () { 

    //  $("#box").stop(); // 如果用沒有參數的stop()方法去停止有列隊動畫,那么只會停止掉第一個列隊動畫,后面的列隊動畫會繼續執行。 

    //}) 

    //那么現在我想當我點擊停止按鈕的時候,我就需要整個將列隊動畫停止下來,而不是僅僅停止第一個,怎么辦呢? 答案是:我們可以給stop()方法加參數 

    //stop()方法有兩個可選參數: 

    //第一個可選參數,如果為true,就代表停止并清除掉后面的隊列動畫。即:動畫完全停止(默認值為false) 

    //第二個可選參數,如果為true,就代表停止并清除掉后面的隊列動畫,并且當前動畫會立刻跳轉到當前這條動畫執行完畢的末尾位置(默認為false) 

    $(".stop").click(function () { $("#box").stop(true, true); }) 

    //--------------------------------動畫的延遲【delay()】 

    $(".button").click(function () { 

      $("#box").delay(2000)    //如果delay(2000) 直接寫在$("#box")元素后面,就表示延遲2秒再執行動畫 

        .animate({ left: "300px" }, 1000) 

        .animate({ bottom: "300px" }, 1000) 

        .animate({ width: "300px" }, 1000).delay(3000) // 寫在這里表示等animate({ width: "300px" }, 1000)這段代碼執行完后,延遲3秒再執行下面的代碼 

        .animate({ height: "300px" }, 1000) 

    }) 

    //-----------------------------------獲取當前正在執行的動畫 【:animated 過濾器】 

    $(".button").click(function () { 

      //$("#box").slideUp(1000, function abc() { 

      //  $(this).slideToggle(1000, abc); //無限循環的調用自己。實現動畫不停的執行。 

      //}) 

      //或者用這以下這種方式也可以實現 動畫不停的自執行 

      $("#box").slideToggle(1000, function () { 

        $(this).slideToggle(1000, arguments.callee); //arguments.callee表示調用自身。 和上面那一句是一樣的 

      }) 

    }) 

    $(".ani").click(function () { 

      $(":animated").css("background", "blue").stop(true); //獲取當前正在執行的動畫,并將它的顏色改為藍色后停止動畫的執行 

    }) 

    //---------------------動畫的全局屬性【$.fx.off屬性可以關閉頁面上所有的動畫】【$.fx.interval屬性可以調整動畫每秒運行的幀數】 

     

    //$.fx.interval 屬性用于設置jQuery動畫每隔多少毫秒繪制一幀圖像 (默認為13 毫秒) 數字越小越流暢,但可能影響瀏覽器性能。 

    //$.fx.interval = 100; // 設置動畫繪制一幀幀的時間為100毫秒,(默認是13毫秒) 

    //$.fx.off = true; //關閉頁面上所有的動畫 

    //補充:在.animate()方法中,還有一個參數,easing 運動方式,這個參數,大部分參數值需要通過插件來使用,在后面的課程中,會詳細講解。自帶的參數有兩個:swing(緩動)、linear(勻速),默認為swing。 

    $('.button').click(function () { 

      $('#box').animate({ left: '800px' }, 1000, 'swing'); //swing 表示緩動運行,緩速運動有個特點,就是剛開始運行的慢,到了中間就比較快,最后又慢下來(中間快,兩頭慢) 整段代碼的意思就是在1秒鐘內 以緩動方式運行動畫 

      $('#pox').animate({ left: '800px' }, 1000, 'linear'); //linear表示勻速運行,速度一直不變 整段代碼的意思就是在1秒鐘內 以勻速方式運行動畫 

    }); 

  }); 

</script>

名單

以上這篇深入理解jquery自定義動畫animate()就是小編分享給大家的全部內容了,希望能給大家一個參考

更多信息請查看網絡編程
易賢網手機網站地址:深入理解jquery自定義動畫animate()
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
亚洲国产欧美在线人成| 欧美一区亚洲二区| 欧美影院一区| 国产精品入口66mio| 正在播放日韩| 国产精品欧美久久久久无广告| 亚洲永久视频| 韩国成人福利片在线播放| 久久人人爽人人爽爽久久| 亚洲国产你懂的| 欧美日韩一区二区三区高清| 亚洲免费中文字幕| 国内在线观看一区二区三区| 蜜月aⅴ免费一区二区三区| 99精品欧美一区二区三区综合在线| 欧美日韩一区二区免费视频| 午夜精品福利视频| 在线欧美福利| 欧美性大战xxxxx久久久| 久久aⅴ国产紧身牛仔裤| 在线日韩av| 欧美体内谢she精2性欧美| 欧美专区中文字幕| 亚洲精品婷婷| 国际精品欧美精品| 欧美日韩999| 久久九九99| 亚洲午夜久久久久久尤物| 国产一区二区三区四区在线观看| 另类综合日韩欧美亚洲| 亚洲女人天堂成人av在线| 在线欧美日韩国产| 亚洲午夜一区二区三区| 亚洲成色www8888| 欧美中文字幕视频| 日韩亚洲精品在线| 精品成人乱色一区二区| 国产精品白丝av嫩草影院| 久久久视频精品| 亚洲特级片在线| 欧美视频一区二区三区…| 老司机亚洲精品| 欧美一区二区三区久久精品| 99亚洲精品| 亚洲国产日韩在线一区模特| 国产日韩精品久久| 欧美视频中文在线看| 免费h精品视频在线播放| 欧美一区二区三区视频免费| 99精品久久| 亚洲人成小说网站色在线| 国产一区二区三区四区在线观看| 国产精品r级在线| 欧美精品在线观看91| 久久综合久久美利坚合众国| 午夜在线一区| 亚洲一区二区三区四区视频| 亚洲精品午夜| 91久久午夜| 伊人婷婷久久| 狠狠色2019综合网| 国产亚洲欧美一区在线观看 | 亚洲国产日韩美| 国产小视频国产精品| 欧美性事免费在线观看| 欧美日本国产视频| 欧美精品免费播放| 欧美大胆成人| 噜噜噜久久亚洲精品国产品小说| 欧美在线一级va免费观看| 亚洲欧美日韩精品一区二区| 在线视频亚洲欧美| 一本不卡影院| 一区二区三区.www| 日韩视频―中文字幕| 亚洲国产欧美一区二区三区久久 | 性欧美暴力猛交69hd| 亚洲永久视频| 亚洲欧美美女| 午夜视频久久久| 亚洲欧美日韩直播| 午夜精品视频在线| 蜜桃av一区| 亚洲午夜视频在线观看| 国内揄拍国内精品少妇国语| 欧美日韩精品伦理作品在线免费观看| 久久精品视频99| 亚洲国产精品一区制服丝袜| 欧美女激情福利| 欧美一区二区在线| 亚洲系列中文字幕| 激情综合在线| 国产精品国产a级| 欧美精品久久一区二区| 欧美日韩精品免费观看视一区二区 | 亚洲国产精品久久91精品| 国产欧美日韩另类一区| 欧美久久久久久蜜桃| 欧美午夜理伦三级在线观看| 欧美va亚洲va国产综合| 91久久精品一区二区别| 国外成人在线视频| 国产亚洲精品久久久久动| 99国内精品久久| 国产精品免费久久久久久| 久久久久综合网| 免费的成人av| 欧美久久久久中文字幕| 国产精品久久久久久久久久三级| 国产精品天美传媒入口| 国内成人精品视频| 亚洲精品视频一区| 亚洲小说欧美另类社区| 久久九九免费视频| 欧美日本高清视频| 噜噜噜91成人网| 国产欧美日韩另类视频免费观看| 久久一区二区三区av| 欧美刺激性大交免费视频 | 国产精品一区免费观看| 国产亚洲精品aa午夜观看| 尤物在线观看一区| 正在播放欧美视频| 麻豆91精品91久久久的内涵| 毛片一区二区三区| 国产精品嫩草影院一区二区| 黄色精品一区二区| 一区二区精品在线| 久久视频一区二区| 欧美视频在线看| 精品成人国产| 亚洲综合清纯丝袜自拍| 久久国产一二区| 欧美精品高清视频| 国产一本一道久久香蕉| 国产精品日产欧美久久久久| 欧美精品久久一区| 亚洲欧美日韩精品综合在线观看| 99re视频这里只有精品| 国产视频一区二区在线观看| 一区免费在线| 在线欧美影院| 亚洲欧美日韩视频二区| 亚洲综合色视频| 在线观看欧美成人| 国产一区二区丝袜高跟鞋图片| 亚洲第一精品福利| 新67194成人永久网站| 欧美人牲a欧美精品| 国产日韩精品久久| 亚洲综合好骚| 欧美久久久久久久| 亚洲国产日韩精品| 最新日韩在线| 欧美淫片网站| 欧美色偷偷大香| 亚洲精品视频免费在线观看| 欧美影院视频| 国产精品久久福利| 一区二区三区免费在线观看| 美女主播精品视频一二三四| 国产精品视频网址| 一区二区国产日产| 欧美777四色影视在线| 久久国产福利国产秒拍| 亚洲国产成人久久综合| 一本久道久久综合中文字幕| 美女精品自拍一二三四| 国产精品无码专区在线观看| 亚洲春色另类小说| 久久麻豆一区二区| 激情久久婷婷| 欧美一区在线视频| 国内激情久久| 亚洲欧美综合国产精品一区| 欧美日韩日本网| 日韩视频免费观看高清在线视频| 久久综合伊人77777麻豆| 红桃视频欧美| 美女精品在线| 亚洲日本一区二区| 欧美1区免费| 91久久精品国产91性色| 欧美高清在线观看| 亚洲免费大片| 欧美女同在线视频| 亚洲国内自拍| 欧美激情久久久久| 亚洲日本中文字幕区 | 一区二区三区视频观看| 鲁大师成人一区二区三区 | 久久久久久久综合色一本| 国产精品日韩欧美一区| 欧美在线精品免播放器视频| 免费不卡欧美自拍视频| 亚洲人成网站在线观看播放| 久久久久久高潮国产精品视| 国产乱码精品一区二区三| 亚洲视频在线一区| 国产日韩专区在线|