一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

鋒利的jQuery(5)事件和動畫

 賈朋亮博客 2014-05-16

1. 加載DOM

    $(document).ready(function(){

      //code

    });

  //簡寫

    $(function(){

    })

  與window.onload的區(qū)別:jquery的ready函數(shù)在DOM樹加載完后即可執(zhí)行,而window.onload則必須等待網(wǎng)頁中所有元素加載完后才執(zhí)行。window.onload只能執(zhí)行一次,而ready可執(zhí)行多次。

    window.onload=function(){

    };

  jquery中與window.onload等同的函數(shù)是:

    $(window).load(function(){

    });

2. 事件綁定:為某個元素綁定事件而完成相應(yīng)的功能。

  bind(type,[,data],fn)

  2.1 函數(shù)說明:

    第一參數(shù)type是事件類型:可以是:click,dbclick,blur,focus,load,resize,scroll,unload,mouseup,mousedown,

    mousemove,mouseenter,mouseout,mouseleave,changeselect,submit,keydown,keyup,keypress,error等,也可以是自定義事件。

    第二個參數(shù)是可選參數(shù):作為event.data屬性值傳遞給事件對象。

    第三個參數(shù)是用來綁定的處理函數(shù)。

  例如:$("#pannel h5.head).bind("click",function(){
     //code 為id=panel的div內(nèi)的且class=head的H5元素綁定click事件

     });

  2.2. 簡寫事件綁定:

    $("#panel h5.head").click(function(){

      //code

    });

3. 合成事件

  3.1 hover方法:模擬鼠標懸停事件

    eg:

    $("#panel h5.head").hover(function(){

      //code 鼠標劃過

    },function(){

      //code鼠標劃出

    }

  3.2 toggle()方法:用于模擬鼠標連續(xù)單擊事件 ;還可以用于切換的元素的可見狀態(tài)。

    toggle(fn1,fn2,fn3,...)

4. 事件冒泡:網(wǎng)頁中存在嵌套元素,且其中的元素綁定了同一個事件,內(nèi)層嵌套元素觸發(fā)該事件,外層嵌套元素也會跟著觸發(fā)該事件,且順序為內(nèi)層到外層。

  4.1 事件冒泡引發(fā)的問題:

    4.1.1 使用事件對象

      $("element").bind("click",function(event){

        //...事件對象

      });

    4.1.2 停止冒泡事件:

      $("element").bind("click",function(event){

        event.stopPropagation();

        //或者return false;

      });

    4.1.3 阻止默認行為:

      $("element").bind("click",function(){

        event.preventDefault();

        //或者用:return false;

      })

5. 事件對象的屬性:

  5.1 event.type()方法:獲取到事件的類型:

    $("a").click(function(event){

      alert(event.type()); //獲取事件的類型,返回"click"

      return false;

    });

  5.2 event.target():獲取到觸發(fā)事件的元素

  5.3 event.pageX()和event.pageY:獲取到光標相對與頁面的x坐標和y坐標。

  5.4 event.which():在鼠標單擊事件中獲取鼠標的左中右鍵;在鍵盤事件中獲取鍵盤的按鍵;

    $("body").mousedown(function(event){

      alert(event.which); //1=鼠標左鍵,2=鼠標中鍵,3=鼠標右鍵;

    });

6. 移除事件

   6.1 移除按鈕元素以前注冊的事件

    $("#btn").bind("click",myfun1=function(){}.bind("click",myfun2=function(){});

    $("#delAll").click(function(){

      $("#btn").unbind("click");

    });

   6.2 移除按鈕元素其中的一個事件:

    $("#del").click(function(){

      $("#btn").unbind("click",myFun1);

    })

7. 模擬操作:

  7.1 常用模擬函數(shù):trigger()方法,注意該方法應(yīng)用于綁定函數(shù)之后。

    $("#btn").trigger("click"); // 用戶進入頁面后,就觸發(fā)click事件,而不需要用戶主動點擊。

    簡寫:$("#btn").click();

  7.2 觸發(fā)自定義事件:

    $("#btn").bind("myClick",function(){

      $("#test").append("<p>我的自定義事件.</p>");

    });

    觸發(fā)事件:

    $("#btn").trigger("myClick");

  7.3 傳遞數(shù)據(jù):

    trigger("type"[,data]),第一個參數(shù)為事件類型,第二個參數(shù)為傳遞給事件處理函數(shù)的附加數(shù)據(jù),以數(shù)組形式傳遞。

    $("#ben").bind("myClick",function(event,message1,message2){

      $("#test").append("<p>+message1+message2+"</p>");

    });

    觸發(fā)事件:

    $("#btn").trigger("myClick",["我的自定義”,"事件"]);

  7.4 執(zhí)行默認操作:trigger()方法執(zhí)行后,會執(zhí)行瀏覽器的默認操作。

    $("input").trigger("focus"); //不僅會觸發(fā)<input>元素綁定的focus事件,瀏覽器也會使<input>元素得到焦點

    如果執(zhí)行觸發(fā)綁定的事件,而不想執(zhí)行瀏覽器的默認操作,可用:

    $("input").triggerHandler("focus"); //不會得到焦點;

8. 其他用法:

  8.1 綁定多個事件:

    $("div").bind("mouseover mouseout",function(){

      $(this).toggleClass("over");

    });// 當光標滑入<div>元素時,該元素的class切換為”over";當光標滑出<div>時切換為先前的值。等同與下面的代碼:

    $("div).bind("mouseover",function(){

      $(this).toggleClass("over");

    }).bind("mouseout",function(){

      $(this).toggleClass("over");

    });

  8.2 添加事件命名空間,便于管理。如刪除事件時,只需指定命名空間即可,而不存在命名空間的事件不受影響。

    $("div").bind("click.plugin",function(){

      $("body").append("<p>click事件</p>");

    });bind("mouseover.plugin",function(){
      $("body").append("<p>mouseover事件</p>");

    });bind("dbclick",function(){

      $("body").append("<p>dbclick事件</p>");

    });

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

      $("div").unbind(".plugin");

    });

  8.3 相同事件名稱,不同命名空間執(zhí)行方法。

    $("div").bind("click",function(){

      $("body").append("<p>click事件</p>");

    }).bind("click.plugin",function(){

      $("body").append("<p>click.plugin事件</p>");

    });

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

      $("div").trigger("click!"); //點擊<button>會觸發(fā)click事件,不會觸發(fā)click.plugin事件,trigger("click!")后面的感嘆號的 作用時匹配不包含在命名空間中的click事            //件。要觸發(fā)兩者,改成trigger("click")即可。

    });

9. jQuery中的動畫:用jQuery做動畫要求要在標準模式下,否則可能會引起動畫抖動。標準模式即要求文件頭部包含如下的DTD定義:

  <!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd">

  9.1 show()方法和hide()方法:同時修改元素的高度,寬度和不透明度。

    $("element").show("slow"); //運行代碼后,元素將在600ms內(nèi)慢慢顯示出來。"normal"=400ms,"fast”=200ms,如果用時間作為參數(shù)就不需要加引號。

  9.2 fadeIn()方法和fadeOut()方法:只改變元素的不透度。

  9.3 slideUp()方法和slideDown()方法:只改變元素的高度。

  9.4 自定義動畫 animate()

    animate(params,speed,callback);

      params:一個包含樣式屬性及值的映射,比如{property1:"value1",property2,"value2",...}

      speed:速度參數(shù),可選。

      callback:在動畫完成后執(zhí)行的函數(shù),可選。

    9.4.1 自定義簡單動畫:

      $("#panel").click(function(){

        $(this).animate({left:"500px"},3000);

      });// 移動該元素需設(shè)置該元素的position為“relative"或"absolute"。

    9.4.2累加、累減動畫:

      $(this).animate({left:"+=500px"},3000);

    9.4.3 同時執(zhí)行多個動畫:

      $(this).animate({left:"500px",height:"200px"},3000); // 該元素向右滑動的同時,增大高度。

    9.4.4 動畫回調(diào)函數(shù):依次列出動畫函數(shù)會加入到動畫序列中,其他函數(shù)并不會加入到動畫序列中,需在動畫完成時通過函數(shù)調(diào)用才執(zhí)行。

       $(this).animate({left:"400px",height:"200px",opacity:"1"},3000).fadeOut("show").animate({top:"200px",width:"300px"},3000,function(){

        $(this).css("border","5px solid blue");

      });

    9.4.5 停止動畫和判斷是否處于動畫狀態(tài)

      1. 停止動畫。stop()只會停止正在進行的動畫;stop(true)會把當前元素接下來尚未停止的動畫隊列清空。

      $("#panel").hover(function(){

        $(this).stop()

          .animate({height:"150px",width:"300px"},200);

        },function(){

          .animate({heigth:"22px",width:"60px"},300);

       });

      2. 判斷是否處于動畫狀態(tài):

      $(this).is(":animated")    

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美日韩国产的另类视频| 亚洲超碰成人天堂涩涩| 欧美日韩久久精品一区二区| 日韩一级一片内射视频4k| 麻豆欧美精品国产综合久久| 国产精品尹人香蕉综合网| 中文字幕人妻av不卡| 中文字幕区自拍偷拍区| 久久精品国产亚洲av麻豆| 手机在线观看亚洲中文字幕| 日韩欧美亚洲综合在线| 国产欧美另类激情久久久| 欧美日韩国产的另类视频| 视频在线观看色一区二区| 91麻豆精品欧美一区| 精品人妻久久一品二品三品| 日本一区二区三区久久娇喘| 日韩一区二区三区高清在| 日韩在线一区中文字幕| 视频在线播放你懂的一区| 欧美国产日韩变态另类在线看| 中文字幕av诱惑一区二区| 欧美亚洲91在线视频| 国产日产欧美精品大秀| 国产免费无遮挡精品视频 | 午夜福利大片亚洲一区| 欧美一区日韩二区亚洲三区| 国产精品日本女优在线观看| 国产一区二区三区午夜精品| 精品午夜福利无人区乱码| 老司机精品视频免费入口| 九九九热视频免费观看| 中字幕一区二区三区久久蜜桃 | 亚洲一区二区欧美在线| 东北老熟妇全程露脸被内射| 国产日韩综合一区在线观看| 亚洲欧美日韩国产自拍| 沐浴偷拍一区二区视频| 粉嫩国产美女国产av| 人妻熟女中文字幕在线| 69老司机精品视频在线观看|