jQuery 事件和动画总结
2016-07-31 22:35
417 查看
加载DOM
$(window).load() 等价于 window.onload 事件
$(document).ready() 相当于window.onload事件,但有些区别:
(1)执行时机:
window.onload 是在网页中所有元素(包括元素的所有关联文件)完全加载后才执行
$(document).ready() 是在DOM完全就绪时就可以被调用,此时,并不意味着这些元素关系的文件都已经下载完毕
(2)多次使用:可以在同一个页面注册多个$(document).ready()事件
(3)简写方式:可以缩写成 $(function(){ }) 或 $().ready()
·事件绑定
当文档装载完成后,可以通过bind()方法,为特定的元素进行事件的绑定,可重复多次使用
bind( type, [data, ] fn );
type:指事件的类型:
blur(失去焦点)、focus(获得焦点)
load(加载完成)、unload(销毁完成)
resize(调整元素大小)、scroll(滚动元素)
click(单击元素事件)、dbclick(双击元素事件)
mousedown(按下鼠标)、mouseup(松开鼠标)
mousemove(鼠标移过)、mouseover(鼠标移入)、mouseout(鼠标移出)
mouseenter(鼠标进入)、mouseleave(鼠标离开)
change(值改变)、select(下拉框索引改变)、submit(提交按钮)
keydown(键盘按下)、keyup(键盘松开)、keypress(键盘单击)
error(异常)
data:指事件传递的属性值,event.data 额外传递给对象事件的值
fn:指绑定的处理函数,在此函数体内,$(this)指携带相应行为的DOM元素
·合并事件
hover(enter,leave):鼠标移入执行enter、移出事件执行leave
$("#myDiv").hover( function(){
$(this).css("border", "1px solid black");0
}, function(){
$(this).css("border", "none");
});
toggle(fn1,fn2,...fnN):鼠标每点击一次,执行一个函数,直到最后一个后重复
$("#myDiv").toggle( function(){
$(this).css("border", "1px solid black");0
}, function(){
$(this).css("border", "none");
});
·事件冒泡
下面的例子,BODY元素下有DIV元素,DIV元素下有SPAN元素,分别将三种元素都注册click事件。
那么,click事件会按照DOM的层次结构,像水泡一样不断向上直到顶端,所以称之为事件冒泡。
<body><div><span>我是SPAN我怕谁</span></div></body>
$("span").bind("click", function(){ alert('span click'); });
$("div").bind("click", function(){ alert('div click'); });
$("body").bind("click", function(){ alert('body click'); });
·阻止冒泡
解决这个问题的办法是:在SPAN执行完click事件后,停止事件冒泡。
$("span").bind("click", function(event){
alert('span click');
event.stopPropagation(); //停止冒泡
});
·阻止默认行为
提交按钮在提交前做相应的逻辑判断,当不满足时
$("#btnSubmit").bind("click", function(event){
event.preventDefault(); //阻止默认行为 相当于return false;
});
·事件对象的属性
$("#myDiv").bind("click", function(event){ });
event.type() //返回:click
event.target() //获取当前元素
event.relatedTarget() //引发事件的元素
event.pageX()/event.pageY() //获取鼠标相对于页面的X和Y坐标
event.which() //在单击事件中获取到对应的按键 鼠标左中右分别是123
event.metaKey() //获取操作中的相关功能键(ctrl/alt/shift)
·移除事件
$("#myDiv").bind("click", fn1 = function(){
alert("function1");
}).bind("click", fn2 = function(){
alert("function2");
}).bind("click", fn3 = function(){
alert("function3");
});
$("#myDiv").unbind(); //移除id为myDiv的元素的所有事件
$("#myDiv").unbind("click"); //移除id为myDiv的元素的所有click事件
$("#myDiv").unbind("click",fn1); //移除id为myDiv的元素的名称为fn1的click事件
·一次性事件:绑定的事件执行一次后自动移除
$("#myDiv").one("click", [data], function(){
alert("function1");
});
·触发事件
$("#btn").trigger("click", [data]); //代码方式触发click事件
$("#btn").click(); //另一种简写方式
·事件命名空间
$("#myDiv").bind("click.hello", function(){
alert("function1");
});
$("#myDiv").bind("click", function(){
alert("function1");
})
$("div").unbind("click"); //两个事件都被移除
$("div").unbind(".hello"); //只移除第一个
$("div").unbind("click!"); //只移除第二个(注意感叹号,指没有名字空间的)
·JQuery中的动画
$("div").hide(); //隐藏所有DIV元素,相当于sytle="display:none"
$("div").show(); //显示所有DIV元素
$("div").hide(1000); //一秒内隐藏所有DIV元素,其它参数还有:slow(600) normal(400) fast(200)
$("div").show(1000); //一秒内显示所有DIV元素
$("div").fadeOut(); //降低元素的不透明度,直至消失(支持速度参数,不会改变宽高)
$("div").fadeIn(); //升高元素的不透明度,直至显示
$("div").slideUp(); //由下至上收缩元素,直至消失(支持速度参数)
$("div").slideDown(); //由上至下展开元素,直至显示
·自定义动画animate
$(elem).animate(params, speed, callback);
params:样式属性及值的映射 {protected:"value", protected:"value"}
speed: 速度参数
callback: 动画完成后执行函数,可选
$("#myDiv").animate({left:"500px"}, 2000); //两秒内ID为myDiv的元素移至左边距500px的位置
$("#myDiv").animate({left:"+=500px"}, 2000); //同上,支持累加、累减
$("#myDiv").animate({top:"200px", left:"+=500px"}, 2000); //同上,多重动画,同时执行
$("#myDiv").animate({opacity:"0.5"}, 1000) //先变成50%透明
.animate({top:"500px"}, 500) //移至离顶端500px
.animate({left:"500px"}, 500) //移至离左边500px
.fadeOut(1000); //显示出来 (四个动作为队列,一步步执行)
$("#myDiv").stop([cleanQuene] [,gotuEnd]); //停止动画,参数为boolean
$("#myDiv").is(":animate") //判断元素是否在执行动画
·其它动画
$("#myDiv").toggle(); //显示与隐藏元素
$("#myDiv").slideToggle(); //展开与收缩元素
$("#myDiv").fadeTo(1000, 0.2); //一秒内将元素透明度调整到20%
$(window).load() 等价于 window.onload 事件
$(document).ready() 相当于window.onload事件,但有些区别:
(1)执行时机:
window.onload 是在网页中所有元素(包括元素的所有关联文件)完全加载后才执行
$(document).ready() 是在DOM完全就绪时就可以被调用,此时,并不意味着这些元素关系的文件都已经下载完毕
(2)多次使用:可以在同一个页面注册多个$(document).ready()事件
(3)简写方式:可以缩写成 $(function(){ }) 或 $().ready()
·事件绑定
当文档装载完成后,可以通过bind()方法,为特定的元素进行事件的绑定,可重复多次使用
bind( type, [data, ] fn );
type:指事件的类型:
blur(失去焦点)、focus(获得焦点)
load(加载完成)、unload(销毁完成)
resize(调整元素大小)、scroll(滚动元素)
click(单击元素事件)、dbclick(双击元素事件)
mousedown(按下鼠标)、mouseup(松开鼠标)
mousemove(鼠标移过)、mouseover(鼠标移入)、mouseout(鼠标移出)
mouseenter(鼠标进入)、mouseleave(鼠标离开)
change(值改变)、select(下拉框索引改变)、submit(提交按钮)
keydown(键盘按下)、keyup(键盘松开)、keypress(键盘单击)
error(异常)
data:指事件传递的属性值,event.data 额外传递给对象事件的值
fn:指绑定的处理函数,在此函数体内,$(this)指携带相应行为的DOM元素
·合并事件
hover(enter,leave):鼠标移入执行enter、移出事件执行leave
$("#myDiv").hover( function(){
$(this).css("border", "1px solid black");0
}, function(){
$(this).css("border", "none");
});
toggle(fn1,fn2,...fnN):鼠标每点击一次,执行一个函数,直到最后一个后重复
$("#myDiv").toggle( function(){
$(this).css("border", "1px solid black");0
}, function(){
$(this).css("border", "none");
});
·事件冒泡
下面的例子,BODY元素下有DIV元素,DIV元素下有SPAN元素,分别将三种元素都注册click事件。
那么,click事件会按照DOM的层次结构,像水泡一样不断向上直到顶端,所以称之为事件冒泡。
<body><div><span>我是SPAN我怕谁</span></div></body>
$("span").bind("click", function(){ alert('span click'); });
$("div").bind("click", function(){ alert('div click'); });
$("body").bind("click", function(){ alert('body click'); });
·阻止冒泡
解决这个问题的办法是:在SPAN执行完click事件后,停止事件冒泡。
$("span").bind("click", function(event){
alert('span click');
event.stopPropagation(); //停止冒泡
});
·阻止默认行为
提交按钮在提交前做相应的逻辑判断,当不满足时
$("#btnSubmit").bind("click", function(event){
event.preventDefault(); //阻止默认行为 相当于return false;
});
·事件对象的属性
$("#myDiv").bind("click", function(event){ });
event.type() //返回:click
event.target() //获取当前元素
event.relatedTarget() //引发事件的元素
event.pageX()/event.pageY() //获取鼠标相对于页面的X和Y坐标
event.which() //在单击事件中获取到对应的按键 鼠标左中右分别是123
event.metaKey() //获取操作中的相关功能键(ctrl/alt/shift)
·移除事件
$("#myDiv").bind("click", fn1 = function(){
alert("function1");
}).bind("click", fn2 = function(){
alert("function2");
}).bind("click", fn3 = function(){
alert("function3");
});
$("#myDiv").unbind(); //移除id为myDiv的元素的所有事件
$("#myDiv").unbind("click"); //移除id为myDiv的元素的所有click事件
$("#myDiv").unbind("click",fn1); //移除id为myDiv的元素的名称为fn1的click事件
·一次性事件:绑定的事件执行一次后自动移除
$("#myDiv").one("click", [data], function(){
alert("function1");
});
·触发事件
$("#btn").trigger("click", [data]); //代码方式触发click事件
$("#btn").click(); //另一种简写方式
·事件命名空间
$("#myDiv").bind("click.hello", function(){
alert("function1");
});
$("#myDiv").bind("click", function(){
alert("function1");
})
$("div").unbind("click"); //两个事件都被移除
$("div").unbind(".hello"); //只移除第一个
$("div").unbind("click!"); //只移除第二个(注意感叹号,指没有名字空间的)
·JQuery中的动画
$("div").hide(); //隐藏所有DIV元素,相当于sytle="display:none"
$("div").show(); //显示所有DIV元素
$("div").hide(1000); //一秒内隐藏所有DIV元素,其它参数还有:slow(600) normal(400) fast(200)
$("div").show(1000); //一秒内显示所有DIV元素
$("div").fadeOut(); //降低元素的不透明度,直至消失(支持速度参数,不会改变宽高)
$("div").fadeIn(); //升高元素的不透明度,直至显示
$("div").slideUp(); //由下至上收缩元素,直至消失(支持速度参数)
$("div").slideDown(); //由上至下展开元素,直至显示
·自定义动画animate
$(elem).animate(params, speed, callback);
params:样式属性及值的映射 {protected:"value", protected:"value"}
speed: 速度参数
callback: 动画完成后执行函数,可选
$("#myDiv").animate({left:"500px"}, 2000); //两秒内ID为myDiv的元素移至左边距500px的位置
$("#myDiv").animate({left:"+=500px"}, 2000); //同上,支持累加、累减
$("#myDiv").animate({top:"200px", left:"+=500px"}, 2000); //同上,多重动画,同时执行
$("#myDiv").animate({opacity:"0.5"}, 1000) //先变成50%透明
.animate({top:"500px"}, 500) //移至离顶端500px
.animate({left:"500px"}, 500) //移至离左边500px
.fadeOut(1000); //显示出来 (四个动作为队列,一步步执行)
$("#myDiv").stop([cleanQuene] [,gotuEnd]); //停止动画,参数为boolean
$("#myDiv").is(":animate") //判断元素是否在执行动画
·其它动画
$("#myDiv").toggle(); //显示与隐藏元素
$("#myDiv").slideToggle(); //展开与收缩元素
$("#myDiv").fadeTo(1000, 0.2); //一秒内将元素透明度调整到20%
相关文章推荐
- JQuery总结:选择器归纳、DOM遍历和事件处理、DOM完全操作和动画
- jQuery中事件与动画的总结
- JQuery总结:选择器归纳、DOM遍历和事件处理、DOM完全操作和动画 (转)
- JQuery总结:选择器归纳、DOM遍历和事件处理、DOM完全操作和动画
- 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
- jQuery中事件与动画的总结分享
- JQuery入门总结(一)【DOM、选择器、方法事件】
- jQuery 选择器、DOM操作、事件、动画
- 锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
- 锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
- jQuery 选择器、DOM操作、事件、动画
- jQuery在学习之四、jQuery事件与动画
- jquery学习笔记(三)事件和动画
- jquery事件,动画1
- JQuery学习笔记(4)JQuery中的事件和动画
- jquery技巧总结-jQuery对象,集合,方法扩展,事件处理,特效,解决冲突
- jQuery 选择器、DOM操作、事件、动画
- 锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
- jQuery事件总结
- 《锋利的jQuery》要点归纳(三) jQuery中的事件和动画(下:动画篇)