1. 程式人生 > >HTML-jQuery中的事件與動畫

HTML-jQuery中的事件與動畫

網頁中的事件

WinForm一樣,在網頁中的互動也是需要事件來實現的,例如tab切換效果,可以通過滑鼠單擊事件來實現

jQuery中的事件:

jQuery事件是對JavaScript事件的封裝,常用事件分類:

  1. 基礎事件:①滑鼠事件;②鍵盤事件;③window事件;④表單事件
  2. 複合事件:①滑鼠游標懸停;②滑鼠連續點選

滑鼠事件:

滑鼠事件是當用戶在文件上移動或單擊滑鼠時而產生的事件

方法

描述

執行時機

click( )

觸發或將函式繫結到指定元素的click事件

單擊滑鼠時

mouseover( )

觸發或將函式繫結到指定元素的mouseover事件

滑鼠指標移過時

mouseout( )

觸發或將函式繫結到指定元素的mouseout事件

滑鼠指標移出

mouseenter( )

觸發或將函式繫結到指定元素的mouseenter事件

滑鼠指標進入時

mouseleave( )

觸發或將函式繫結到指定元素的mouseleave事件

滑鼠指標離開時

示例:

以mouseover( ) 【當滑鼠移過選單時】與mouseout( )【當滑鼠移出選單時】方法為例,實現導航選單

$(".nav-ul a").mouseover(function(){

       $(this).css("background-color","#f01e28");

【使用mouseover事件使導航專案改變背景顏色】

});

$(".nav-ul a").mouseout(function(){

       $(this).css("background-color","#ff2832");

【使用mouseout事件使導航專案還原背景顏色】

});

滑鼠事件方法的區別:

鍵盤事件:

使用者每次按下或者釋放鍵盤上的鍵時都會產生事件,常用鍵盤事件:

示例:

以鍵盤事件為例,實現按鍵時特效

$("[type=password]").keyup(function () {   【當釋放鍵盤時】

       $("#events").append("keyup");

       【append方法是在備選元素的結尾,結尾依然在所選元素的內部插入指定內容】

      }).keydown(function (e) {    【當按下鍵盤時】

       $("#events").append("keydown");

      }).keypress(function () {     【向密碼框輸入字元時】

       $("#events").append("keypress");

     });

$(document).keydown(function (event) {   【event是個物件,代表了事件的一個狀態,其中包含了事件發生的元素,鍵盤按鍵的狀態】

        if (event.keyCode == "13") {  【按回車鍵時】

              alert("確認要提交麼?");

       }

});

瀏覽器事件:

語法:$(selector).resize( );

調整視窗大小時,完成頁面特效

繫結事件:

bind(type,[data],fn);

type:事件型別,主要包括click、mouseover、mouseout等基礎事件,此外,還可以是自定義事件

data:可選函式

fn:處理函式

繫結單個事件:

示例:

$(document).ready(function(){

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

              $(".topDown").show();

       });

});

繫結多個事件:

使用繫結多個事件實現“我的當當” 二級選單的顯示和隱藏

示例:

$(".top-m .on").bind({

       mouseover:function(){   【為mouseover繫結方法】

              $(".topDown").show();

       },

       mouseout:function(){    【為mouseout繫結方法】

              $(".topDown").hide();

       }

});

移除事件:

移除事件使用unbind()方法

語法:unbind([type],[fn])

type:事件型別,主要包括:blur、focus、click、mouseout等基礎事件,此外,還可以是自定義事件

fn:處理函式

當unbind()不帶引數時,表示移除所繫結的全部事件

複合事件:

hover()方法:

hover()方法相當於mouseover與mouseout事件的組合

語法:hover(enter,leave);

示例:

$(".top-m .on").hover(function(){

       $(".topDown").show();    【游標移入時觸發】

          },

         function(){

        $(".topDown").hide();    【游標移出時觸發】

         }

);

toggle()方法:

toggle()方法用於模擬滑鼠連續click事件:

語法:toggle(fn1,fn2,...,fnN);

示例:

$("input").toggle(

        function(){$("body").css("background","#ff0000");},

        function(){$("body").css("background","#00ff00");},

        function(){$("body").css("background","#0000ff");}           )

toggle()方法不帶引數,與show( )和hide( )方法作用一樣:

語法:toggle( );

示例:

$("input").click(function(){$("p").toggle();})

toggleClass( )可以對樣式進行切換:

語法:toggleClass(className);

示例:

$("input").click(function(){$("p").toggleClass("red");})

toggle( )和toggleClass( )總結:

  1. toggle( fn1,fn2...)實現單擊事件的切換,無須額外繫結click事件
  2. toggle( )實現事件觸發物件在顯示和隱藏狀態之間切換
  3. toggleClass( )實現事件觸發物件在載入某個樣式和移除某個樣式之間切換

jQuery動畫效果:

1. 控制元素顯示與隱藏

show() 控制元素的顯示,hide( )控制元素的隱藏

語法:

$(selector).show([speed],[callback])

$(selector).hide([speed],[callback])

speed:可選。表示速度,預設為“0”,可能值:毫秒(如1000)、slow、normal、fast

callback:可選。show函式執行完之後,要執行的函式

2. 改變元素的透明度

fadeIn()和fadeOut()可以通過改變元素的透明度實現淡入淡出效果

語法:

$(selector).fadeIn([speed],[callback])

$(selector).fadeOut([speed],[callback])

3. 改變元素高度

slideDown() 可以使元素逐步延伸顯示

slideUp()則使元素逐步縮短直至隱藏

語法:

$(selector).slideUp ([speed],[callback])

$(selector).slideDown ([speed],[callback])

4. 自定義動畫

語法:

$(selector). animate({params},speed,callback)

params:必須,定義形成動畫的CSS屬性