事件
加载Dom两种方式
window.onload方式:执行时间:整个网页中所有内容(包括图片)加载完成后,才会执行,编写个数:1个
jQuery方式:执行时间:网页结构绘制完成后,执行,编写个数:多个
两个都有的情况下执行顺序【面试题】:jQuery3.0:window.onload比jQuery先执行 jQuery1.0和2.0:jQuery比window.onload先执行
// 加载Dom两种方式
// window.onload方式
window.onload = function(){
}
// jQuery方式
$(document).ready(function(){
})
$(function(){
})
绑定事件两种方式
元素.on("事件名",function(){})
元素.事件名(function(){})
// 绑定事件两种方式
// 元素.on("事件名",function(){})
// 元素.事件名(function(){})
// 案例2:演示事件(鼠标悬停和点击)的两种方式
$("button").eq(0).on("click",function(){
$("div").eq(0).show();
})
$("button").eq(1).click(function(){
$("div").eq(0).hide();
})
合成事件/事件切换
hover():鼠标悬停合成事件:
鼠标移上去第一个函数
鼠标移除第二个函数
// hover():鼠标悬停合成事件
// 鼠标移上去第一个函数
// 鼠标移除第二个函数
// 案例3:升级案例2鼠标悬停显示和隐藏
$("button").eq(2).hover(function(){
$("div").eq(0).show();
},function(){
$("div").eq(0).hide();
})
toggle():鼠标点击合成事件
// toggle():鼠标点击合成事件
// 案例4:升级案例2鼠标点击显示和隐藏
$("button").eq(2).click(function(){
$("div").eq(0).toggle(1000);
})
事件传播(事件冒泡)
传播:小-->中-->大
阻止传播:事件后面加上 return false
// 传播:小-->中-->大
// 阻止传播:事件后面加上 return false
// 案例5:给body div span(在div中) 分别添加点击事件,测试事件传播
$("div").eq(0).click(function(){
alert("div");
return false;
})
$("body").click(function(){
alert("body");
})
事件坐标
offsetX:当前元素左上角
clientX:窗口左上角
pageX:网页左上角
// offsetX:当前元素左上角
// clientX:窗口左上角
// pageX:网页左上角
// 案例6:pageX实现 鼠标悬浮,获取鼠标坐标
$("body").click(function(){
console.log(event.offsetX+" "+event.offsetY);
console.log(event.clientX+" "+event.clientY)
console.log(event.pageX+" "+event.pageY);
})
移除事件:
元素.unbind("事件名")
注意1:一般情况下,不会使用unbind,推荐使用变量控制事件
注意2:如果某个元素只允许使用一次事件,则可以使用one()
// 元素.unbind("事件名")
// 案例7:按钮点击一次,不能再次点击
$("button").eq(2).click(function(){
alert(123);
$(this).attr("disabled","disabled");
$(this).unbind("click");
})
动画效果
基本
显示:show(Time)
隐藏:hide(Time)
切换:toggle(Time)
// 动画效果
// 基本
// 显示:show(Time)
// 隐藏:hide(Time)
// 切换:toggle(Time)
// 案例1:点击按钮,控制div显示和隐藏(基本动画)
$("button").eq(2).click(function(){
$("div").eq(0).toggle(1000);
})
滑动
slideUp(Time):动画收缩(向上滑动)-->隐藏
slideDown(Time):动画展开(向下滑动)-->显示
slideToggle(Time):动画切换
// 滑动
// slideUp(Time):动画收缩(向上滑动)-->隐藏
// slideDown(Time):动画展开(向下滑动)-->显示
// slideToggle(Time):动画切换
// 案例2:点击按钮,控制div显示和隐藏(滑动)
$("button").eq(0).click(function(){
$("div").eq(0).slideDown(1000);
})
$("button").eq(1).click(function(){
$("div").eq(0).slideUp(1000);
})
$("button").eq(2).click(function(){
$("div").eq(0).slideToggle(1000);
})
淡入淡出(透明度)
fadeIn(Time):淡入(透明度减少)
fadeOut(Time):淡出(透明度增大)
fadeToggle(Time):切换
// 淡入淡出(透明度)
// fadeIn(Time):淡入(透明度减少)
// fadeOut(Time):淡出(透明度增大)
// fadeToggle(Time):切换
// 案例3:点击按钮,控制div显示和隐藏(透明度)
$("button").eq(0).click(function(){
$("div").eq(0).fadeIn(1000);
})
$("button").eq(1).click(function(){
$("div").eq(0).fadeOut(1000);
})
$("button").eq(2).click(function(){
$("div").eq(0).fadeToggle(1000);
})
自定义动画
元素.animate({属性:属性值},Time)
缩放
width
height
移动
top
left
移动(本元素),距离
top= "+="
left= "-="
// 自定义动画
// 元素.animate({属性:属性值},Time)
// 案例4:点击按钮,控制div的宽度和高度变大
$("button").eq(2).click(function(){
$("div").eq(0).animate({
width:'800px',
height:'800px'
},2000)
})
// 案例5:点击按钮,控制div移动,距离网页左上角
$("button").eq(2).click(function(){
$("div").eq(0).animate({
top:'380px',
left:'380px'
},2000)
})
// 案例6:点击按钮,控制div移动,距离本元素
$("button").eq(2).click(function(){
$("div").eq(0).animate({
left:'+=380px'
},2000)
})