【JavaScript】jQuery中的事件与动画
来源:互联网 发布:网络信息加密技术 编辑:程序博客网 时间:2024/05/18 06:19
jQuery中的事件
在jQuery中,事件总体分为两大类:简单事件和复合事件。简单事件,与JavaScript中的事件几乎一样,包括有window事件、鼠标事件、键盘事件、表单事件等,只是其对应的方法略有不同。复合事件,则是截取组合了用户操作,并且以多个函数作为响应而自定义的处理程序。
一:基础事件
语法:事件名 = "函数名()"; 或者DOM对象.事件名=函数;
1.window事件
所谓window事件,就是当用户执行某些会影响浏览器的操作时,而触发的事件。例如:打开网页时加载页面、关闭窗口、调节窗口大小、移动窗口等操作引发的事件处理。在jQuery中,常用的window事件有文档就绪事件,它对应的方法是ready()。更多的window事件,[查看这里](http://www.cnblogs.com/wqj0405/archive/2011/12/09/2282032.html)
2.鼠标事件
//示例 <script type = "text/javascript"> $(document).ready(function(){ $("#nav li").mouseover(function(){ //当鼠标指针移过#nav li元素时 $(this).addClass("type"); //为鼠标指针所在li元素添加样式 }); }); $("#nav li").mouseout(function(){ //当鼠标指针移出#nav li 元素时 $(this).removeClass(); //移除鼠标指针所在li元素的全部样式 }); </script>
注意:this关键词,指向调用这个方法的DOM对象,在上述代码中,this代表的是与鼠标事件关联的 #nav li 元素 在web应用中,鼠标事件常常用于网站导航、下拉菜单、选项卡、轮播广告等。
3.键盘事件
键盘事件是指当键盘聚焦到Web浏览器时,用户每次按下或者释放键盘上的按键都会产生事件。
常用键盘事件的方法 方法 描述 执行时机 keydown() 触发或将函数绑定到指定元素的keydown事件 按下按键时 keyup() 触发或将函数绑定到指定元素的keyup事件 释放按键时 keypress() 触发或将函数绑定到指定元素的keypress事件 产生可打印的字符时 //示例,一段w3School的代码//说明keydown事件与keyup事件<html><head><script type="text/javascript" src="/jquery/jquery.js"></script><script type="text/javascript">$(document).ready(function(){ //在文本框输入内容时,触发keydown(键盘按下事件) $("input").keydown(function(){ $("input").css("background-color","#FFFFCC"); }); //在文本框结束输入内容时,触发keyup(键盘释放事件) $("input").keyup(function(){ $("input").css("background-color","#D6D6FF"); //通过按钮,调用input元素的keydown事件 $("#btn1").click(function(){ $("input").keydown(); }); //通过按钮,调用input元素的keyup事件 $("#btn2").click(function(){ $("input").keyup(); }); });</script></head><body>Enter your name: <input type="text" /><p>当发生 keydown 和 keyup 事件时,输入域会改变颜色。请试着在其中输入内容。</p><p><button id="btn1">触发输入域的 keydown 事件</button></p><p><button id="btn2">触发输入域的 keyup 事件</button></p></body></html>//说明keypress()事件<html><head><script type="text/javascript" src="/jquery/jquery.js"></script><script type="text/javascript">i=0;$(document).ready(function(){ $("input").keypress(function(){ $("span").text(i+=1); }); $("button").click(function(){ $("input").keypress(); });});</script></head><body>Enter your name: <input type="text" /><p>Keypresses:<span>0</span></p><button>触发输入域的 keypress 事件</button></body></html>
keypress 事件与 keydown 事件类似。当按钮被按下时,会发生该事件。它发生在当前获得焦点的元素上。不过,与 keydown 事件不同,每插入一个字符,就会发生 keypress 事件。keypress() 方法触发 keypress 事件,或规定当发生 keypress 事件时运行的函数。
4.表单事件
表单事件是所有事件类型中最稳定,且支持最稳定的事件之一。
//示例:代码来自w3School<html><head><script type="text/javascript" src="/jquery/jquery.js"></script><script type="text/javascript">$(document).ready(function(){ //触发获得焦点事件 $("input").focus(function(){ $("input").css("background-color","#FFFFCC"); }); //触发失去焦点事件 $("input").blur(function(){ $("input").css("background-color","#D6D6FF"); }); $("#btn1").click(function(){ $("input").focus(); }); $("#btn2").click(function(){ $("input").blur(); }); });</script></head><body>Enter your name: <input type="text" /><p>请在上面的输入域中点击,使其获得焦点,然后在输入域外面点击,使其失去焦点。</p><p><button id="btn1">触发输入域的 focus 事件</button></p><p><button id="btn2">触发输入域的 blur 事件</button></p></body></html>
二:绑定事件与移除事件
1.绑定事件
在jQuery中,如果需要为匹配的元素同时绑定一个或多个事件,可以使用bind()方法。 语法: 1、绑定一个函数 $(selector).bind(event,data,function) 2、绑定多个函数 $(selector).bind({event:function, event:function, ...}) envet:事件,例如blur、focus、click、mouseout等基础事件,也可以是自定义事件。 [data]:可选参数,作为event.data属性值传递给事件对象的额外数据对象,该参数不是必须的。 function:处理函数,用来绑定的处理函数
//示例:代码来自w3School//绑定一个事件<html><head><script type="text/javascript" src="/jquery/jquery.js"></script><script type="text/javascript">$(document).ready(function(){ $("button").bind("click",function(){ $("p").slideToggle(); });});</script></head><body><p>This is a paragraph.</p><button>请点击这里</button></body></html>//绑定多个事件<html><head><script type="text/javascript" src="/jquery/jquery.js"></script><script type="text/javascript">$(document).ready(function(){ //对button元素绑定事件,单个事件用放在{}当中,并用逗号分隔。 $("button").bind({ //单击时触发的事件 click:function(){$("p").slideToggle();}, //鼠标移过时触发的事件 mouseover:function(){$("body").css("background-color","red");}, //鼠标移出时触发的事件 mouseout:function(){$("body").css("background-color","#FFFFFF");} });});</script></head><body><p>This is a paragraph.</p><button>请点击这里</button></body></html>
2.移除事件
移除事件与绑定事件是相对的,在jQuery中,为匹配的元素移除单个或多个事件,移除事件使用unbind()方法。 语法: unbind([envet],[function]) envet:事件,例如blur、focus、click、mouseout等基础事件,也可以是自定义事件。 function:处理函数,用来解除绑定的处理函数
unbind()方法有2个参数,这两个参数都不是必须的,当unbind()不带参数时,表示移除所有绑定的事件
//示例:代码来自w3School//unbind()不带参数时<html><head><script type="text/javascript" src="/jquery/jquery.js"></script><script type="text/javascript">$(document).ready(function(){ $("p").click(function(){ $(this).slideToggle(); }); //获取button元素,单击时移除所有事件 $("button").click(function(){ $("p").unbind(); });});</script></head><body><p>这是一个段落。</p><p>这是另一个段落。</p><p>点击任何段落可以令其消失。包括本段落。</p><button>删除 p 元素的事件处理器</button></body></html>//unbind()带参数时<html><head><script type="text/javascript" src="/jquery/jquery.js"></script><script type="text/javascript">function alertMe(){alert("Hello World!");}$(document).ready(function(){ $("p").click(alertMe); $("button").click(function(){ //移除单击事件时的alertMe函数 $("p").unbind("click",alertMe); });});</script></head><body><p>这是一个段落。</p><p>这是另一个段落。</p><p>点击任何段落可以触发一个提示框。包括本段落。</p><button>从 p 元素的 click 事件删除提示框函数</button></body></html>
三:复合事件
1、hover()方法
在jQuery中,hover()方法用于模拟鼠标指针悬停事件。当鼠标指针移动到元素上时,会触发指定的第一个函数(enter:进入),当鼠标指针移出这个元素时,会触发指定的第2个函数(leave:离开),该方法相当于mouseover与mouseout事件的组合。 语法: hover(enterfunction,leavefunction);
//示例 $(document).ready(function(){ $("bottom").hover(function(){ //鼠标移入时触发的函数 $("li").css("display","block"); },function(){ //鼠标移出时触发的函数 $("li").css("display","none"); }); });//函数之间用逗号分隔
2.toggle()方法
在jQuery中toggle()方法用于模拟鼠标连续click事件。第一次单击元素,触发指定的第一个函数;再次单击同一个元素,触发指定的第二个函数;...依次类推,直到最后一个。随后的每次单击都重复对这几个函数轮番调用。 语法: toggle(fn1,fn2,fn3,...fnN);
//示例,代码来自w3School<html><head><script type="text/javascript" src="/jquery/jquery.js"></script><script type="text/javascript">$(document).ready(function(){ $("button").toggle(function(){ //第一次单击时 $("body").css("background-color","green");}, function(){ //第二次单击时 $("body").css("background-color","red");}, function(){ //第三次单击时 $("body").css("background-color","yellow");} );});</script></head><body><button>请点击这里,来切换不同的背景颜色</button></body></html>//不同的函数用逗号分割
jQuery中的动画
1、控制元素显示与隐藏
语法: 控制元素显示:$(selector).show([speed],[callback]) 控制元素隐藏:$(selector).hide([speed],[callback]) seppd:可选。规定元素从隐藏到完全可见(从显示到完全隐藏)的速度。可能值:毫秒、slow、normal、fast。 在设置速度的情况下,元素从隐藏到完全可见(从显示到完全隐藏)的过程中,会逐渐改变高度、宽度、外边距、内边距和透明度。 callback:可选。show 函数执行完之后,要执行的函数。除非设置了 speed 参数,否则不能设置该参数。
//示例<html><head><script type="text/javascript" src="/jquery/jquery.js"></script><script type="text/javascript">$(document).ready(function(){ //隐藏p元素 $(".btn1").click(function(){ $("p").hide(1000); }); //显示p元素(背景颜色为红色),在百分百显示之后,改变p元素的背景颜色(背景颜色为绿色) $(".btn2").click(function(){ $("p").show(1000,showColor); $("p").css("background-color","red"); });});function showColor(){$("p").css("background-color","green");}</script></head><body><p>This is a paragraph.</p><button class="btn1">Hide</button><button class="btn2">Show</button></body></html>
2.改变元素透明度
1.控制元素淡入 语法:$(selector).fadeIn([speed],[callback]);2.控制元素淡出 语法:$(selector).fadeOut([speed],[callback]); 一般来说,fadeIn()方法fadeOut方法()常在网页中为轮播广告、菜单、信息提示框和弹出窗口等制作动画效果。
//示例<html><head><script type="text/javascript" src="/jquery/jquery.js"></script><script type="text/javascript">$(document).ready(function(){ $(".btn1").click(function(){ //单击时元素淡出 $("p").fadeOut(1000); }); $(".btn2").click(function(){ //单击时元素淡入 $("p").fadeIn(1000); });});</script></head><body><p>This is a paragraph.</p><button class="btn1">Hide</button><button class="btn2">Show</button></body></html>
3.改变元素高度
在jQuery中,用于改变元素高度的方法是slideUp()和slideDown()。若元素的display属性值为none,当调用slideDown()方法时,这个元素会从上向下延伸显示,而slideUp()方法正好相反,元素从下到上缩短直至隐藏。
//示例:<html><head><script type="text/javascript" src="/jquery/jquery.js"></script><script type="text/javascript">$(document).ready(function(){ $(".btn1").click(function(){//向上缩短隐藏 $("p").slideUp(1000); }); $(".btn2").click(function(){//向下延伸显示 $("p").slideDown(1000); });});</script></head><body><p>This is a paragraph.</p><button class="btn1">Hide</button><button class="btn2">Show</button></body></html>
注意:
jQuery中的所有动画效果,都可以设置3中速度参数,即slow、normal、fast(0.6、0.4、0.2)。
使用关键字做参数时,需要用双引号引起来,如fadeIn(“slow”),而使用时间数值作为速度参数时,则不需要使用双引号,如fadeIn(1000).
更多的jQuery效果,查看这里
完
0 0
- 【JavaScript】jQuery中的事件与动画
- jQuery中的事件与动画
- jQuery中的事件与动画
- jQuery中的事件与动画
- jQuery中的事件与动画
- jQuery中的事件与动画
- jQuery中的事件与动画
- jQuery事件与动画
- jQuery动画与事件
- 【锋利的JQuery】0x04 JQuery中的事件与动画
- Jquery中的事件和动画
- jquery中的事件和动画
- jquery中的事件和动画
- jquery中的事件和动画
- JQuery中的事件和动画
- JQuery中的事件以及动画
- jQuery中的事件和动画
- jQuery中的事件和动画
- char * 转 LPCSTR
- Spring JDBC、Spring JdbcTemplate 、
- 创建复合控件
- RST复位报文段
- AJAX
- 【JavaScript】jQuery中的事件与动画
- Fragment Hide() Show()切换实例
- RibbonControl 转 XML树
- dijkstra与spfa(bellman-Ford)
- 编程基础设计与算法-24种设计模式和7大原则
- SpringMVC小结
- STL里set函数的基本应用
- 关于Double、Float精度修改问题
- websocket的小记