网页中的事件
和WinForm一样,在网页中的交互也是需要事件来实现的,例如tab切换效果,可以通过鼠标单击事件来实现
jQuery中的事件:
jQuery事件是对JavaScript事件的封装,常用事件分类:
- 基础事件:①鼠标事件;②键盘事件;③window事件;④表单事件
- 复合事件:①鼠标光标悬停;②鼠标连续点击
鼠标事件:
鼠标事件是当用户在文档上移动或单击鼠标时而产生的事件
方法 | 描述 | 执行时机 |
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( )总结:
- toggle( fn1,fn2...)实现单击事件的切换,无须额外绑定click事件
- toggle( )实现事件触发对象在显示和隐藏状态之间切换
- 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属性