JQuery中的事件与动画


JQuery中的事件

WinForm一样,在网页中的交互也是需要事件来实现的,例如tab切换效果,可以通过鼠标单击事件来实现。事件在元素对象与功能代码中起着重要的桥梁作用。

 

JQuery中,事件总体分为两大类,基础事件和复合事件。

 

基础事件:

1、鼠标事件

2、键盘事件

3window事件

4、表单事件

 

复合事件

1、鼠标光标悬停

2、鼠标连续点击

 

鼠标事件是当用户在文档上移动或单击鼠标时而产生的事件

 

常用鼠标事件的方法

方法

描述

执行时机

click( )

触发或将函数绑定到指定元素的click事件

单击鼠标时

mouseover( )

触发或将函数绑定到指定元素的mouseover事件

鼠标指针移过时

mouseout( )

触发或将函数绑定到指定元素的mouseout事件

鼠标指针移出时

mouseenter( )

触发或将函数绑定到指定元素的mouseenter事件

鼠标指针进入时

mouseleave( )

触发或将函数绑定到指定元素的mouseleave事件

鼠标指针离开时

 

例如:

//当鼠标移过菜单时

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

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

});

//当鼠标移出菜单时

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

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

});

 

在方法内部,this指向调用这个方法的DOM对象,示例代码中this代表鼠标事件关联的.nav a元素。

 

鼠标事件方法的区别

方法

相同点

不同点

mouseover( )

鼠标进入被选元素时会触发

鼠标在其被选元素的子元素上来回进入时:

触发mouseover( )

不触发mouseenter

mouseenter( )

mouseout( ) 

鼠标离开被选元素时会触发

鼠标在其被选元素的子元素上来回离开时:

触发mouseout

不触发mouseleave

mouseleave( )

 

 

键盘事件

 

用户每次按下或者释放键盘上的键时都会产生事件,常用键盘事件

方法

描述

执行时机

keydown( )

触发或将函数绑定到指定元素的keydown事件

按下键盘时

keyup( )

触发或将函数绑定到指定元素的keyup事件

释放按键时

keypress( )

触发或将函数绑定到指定元素的keypress事件

产生可打印的字符时

keypress是较为高级的文本事件,它的事件对象指定产生的字符,而不是按下的键

 

例如:

//当释放键盘时

 $("[type=password]").keyup(function () {

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

      })

//当按下键盘时

.keydown(function (e) {

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

      })

//向密码框输入字符时

.keypress(function () {

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

     });

$(document).keydown(function (event) {

 if (event.keyCode == "13") {//按回车键时

alert("确认要提交么?");

}

});

 

 

浏览器事件

 

调整窗口大小时,完成页面特效

语法:

 $(selector).resize( );

 

绑定事件与移除事件

1、绑定事件

 

JQuery中,如果需要为匹配的元素同时绑定一个或多个事件,则可以使用bind()方法

语法:

 bind(type,[data],fn);

参数类型

参数含义

描述

type

事件类型

主要包括clickmouseovermouseout等基础事件,此外,还可以是自定义事件

 

[data]

可选参数

作为event.data属性值传递给事件对象额外数据对象,该参数不是必须的

fn

处理函数

用来绑定处理函数

 

绑定单个事件

例如:

 $(document).ready(function(){

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

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

});

});

 

 

同时绑定多个事件

 

使用bind()方法不仅可以一次绑定一个事件,还可以同时绑定多个事件。

例如:

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

//为mouseover绑定方法

mouseover:function(){

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

},

//为mouseout绑定方法

mouseout:function(){

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

}

});

 

 

移除事件

 

在绑定事件时,可以为匹配元素绑定一个或多个事件,那么同样可以为匹配元素移除单个或多个事件,可以使用unbind()方法

语法:

unbind([type],[fn])

unbind()方法有两个参数,这两个参数不是必需的,当unbind()不带参数时,表示移除所绑定的全部事件。

 

unbind()方法的参数说明

参数类型

参数含义

描述

type

事件类型

主要包括clickmouseovermouseout等基础事件,此外,还可以是自定义事件

 

fn

处理函数

用来解除绑定处理函数

例如:

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

        $("#nav li:first").unbind("click", content1)

});

 

复合事件

 

1hover()方法

JQuery中,hover()方法用于模拟鼠标指针移入和移除事件,当鼠标指针移至元素上时,会触发指定的第一个函数(enter),当鼠标指针移除这个元素时,会触发指定的第二个函数(leave),hover()方法相当于mouseovermouseout事件的组合

语法:

hover(enter,leave);

 

例如:

$(".top-m .on").hover(function(){
$(".topDown").show();//光标移入时触发
          },
         function(){
 $(".topDown").hide();//光标移出时触发
         }
);
 

2toggle()方法

toggle()方法分为带参数的方法和不带参数的方法,带参数的方法用于模拟鼠标连续click事件,第一次单击元素,触发指定的第一个参数(fn1);当再次单击同一个元素时,则触发指定的第二个函数(fn2),如果有更多函数就依次触发,直到最后一个,随后的每次单击都重复对这几个函数轮番调用。

语法:

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( )总结

toggle( fn1,fn2...)实现单击事件的切换,无须额外绑定click事件

toggle( )实现事件触发对象在显示和隐藏状态之间切换

toggleClass( )实现事件触发对象在加载某个样式和移除某个样式之间切换

 

 

JQuery中的动画

 

jQuery提供了很多动画效果

控制元素显示与隐藏

改变元素的透明度

改变元素高度

自定义动画

 

 

控制元素显示

 

show() 控制元素的显示,hide( )控制元素的隐藏

 

语法:

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

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

 

show()hide()方法的参数说明

参数

描述

speed

可选。表示速度,默认为“0”,可能值:毫秒(如1000)、slownormalfast

 

callback

可选。show函数执行完之后,要执行的函数

 

 

例如:

$(document).ready(function(){

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

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

},

function(){

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

}

);

 

 

改变元素透明度

 

1、控制元素淡入

 

JQuery中,如果元素是隐藏的,则可以使用fadeIn()方法控制元素淡入,它与show()方法相同,可以定义元素淡入时的效果。

语法:

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

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

 

fadeIn()fadeOut()方法的参数说明

参数

描述

speed

可选。表示速度,默认为“0”,可能值:毫秒(如1000)、slownormalfast

 

callback

可选。show函数执行完之后,要执行的函数

 

 

例如:

$(document).ready(function() {

$("input[name=fadein_btn]").click(function(){

$("img").fadeIn("slow");

});

$("input[name=fadeout_btn]").click(function(){

$("img").fadeOut(1000);

});

});

 

 

改变元素高度

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

slideUp()则使元素逐步缩短直至隐藏

 

语法:

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

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

例如:

$(document).ready(function() {

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

   $(".txt").slideUp("slow");

   $(".txt").slideDown("slow");

       });

 });

 

 

自定义动画

 

语法:

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

 

params:必须,定义形成动画的CSS属性

speed:可选,规定效果时长,取值:毫秒,fastslow

callback:可选,滑动完成后执行的函数名称

 

例如:

<head>

<script src="/jquery/jquery-1.11.1.min.js">

</script>

<script>

$(document).ready(function(){

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

    $("div").animate({left:'250px'});

  });

});

</script>

</head>

<body>

<button>开始动画</button>

<div style="background:#98bf21;height:100px;width:100px;position:absolute;">

</div>

</body>

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值