十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
mouseenter(进入)、mouseleave、mouseover(覆盖)和mouseout是常用来判断鼠标移出和移入的事件句柄,虽然功能上差不多,但是细节却有不同的地方。
在渠县等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站制作、成都网站制作 网站设计制作按需开发,公司网站建设,企业网站建设,品牌网站制作,全网整合营销推广,成都外贸网站制作,渠县网站建设费用合理。
mouseover和mouseout在父元素和其子元素都可以触发,当鼠标穿过一个元素时,触发次数得依子元素数量而言。
mouseenter和mouseleave只在父元素触发,当鼠标穿过一个元素时,只会触发一次。
mouseover和mouseout比mouseenter和mouseleave先触发
因此一般mouseover和mouseout一起使用,mouseenter和mouseleave一起使用
style
*{
margin: 0%;
padding: 0%;
}
.box{
width: 340px;
border: 1px solid blue;
margin: 10px auto;
}
.box h1{
height: 40px;
color: #fff;
padding-left: 15px;
background-color: blue;
font-size: 25px;
}
ul li{
padding-left: 15px;
list-style-type: none;
line-height: 45px;
border-bottom: 1px dashed #ccc;
}
ul li:last-child{
border-bottom: none;
}
/style
/head
body
div class="box"
h1
祝福冬奥
/h1
ul
li贝克汉姆/li
li 姚明/li
li张宏/li
li肖恩怀特/li
/ul
/div
script src="./jquery-1.12.4.js"/script
script
/* jQuery的链式调用 */
/* $('div').$('div').text('我是学生').css('color','red').attr({name:'zhangsan',age:30}) */
/* 链式调用的原理jq里面的方法都会return this 把当前调用者return出去实现链式调用 */
/* $('ul li').first().css('background','yellow').end().eq(1).css('background','red') */
/* 获取的只是content里面的距离,不包括padding margin border里面的距离 */
/* 返回以像素为单位的top和left的坐标,仅对可见元素有效 */
/* top和left值都会包括自己的margin和父元素border的值 */
console.log($('div2').offset().top);
console.log($('ul').width());
console.log($('ul').height());
/* offsetParent 返回最近的自己定位的祖先元素 */
console.log($('div2').offsetParent());
/* position() 返回第一个匹配元素相对于父元素的位置 */
console.log($('div').position());
/* scrollLeft([position]) 参数可选,设置返回匹配元素相对滚动条左侧的偏移*/
/* 设置滚动条的距离 */
$(window).scrollLeft(100)
/* 获取滚动条的距离 */
$(window).scroll(function(){
console.log($(document).scrollLeft());
})
/script
style
.div1{
width: 300px;
height: 300px;
border: 1px solid red;
}
.div2{
width: 200px;
height: 200px;
background-color: red;;
}
/style
/head
body
div class="div1"
div class="div2"
/div
/div
script src="./jquery-1.12.4.js"/script
script
/* mouseenter mouseleave 在进入子元素区域时不会触发
mouseover 和mouseout 会触发 */
/* $('.div1').mouseenter(function(){
$(this).css('background','green')
})
$('.div1').mouseleave(function(){
$(this).css('background','yellow')
}) */
/* 由mouseenter 和mouseleave组成 */
$('.div1').hover(function(){
$(this).css('background','yellow')
console.log(1);
})
/script
style
*{
margin: 0%;
padding: 0%;
}
.box{
width: 340px;
border: 1px solid blue;
margin: 10px auto;
}
.box h1{
height: 40px;
color: #fff;
padding-left: 15px;
background-color: blue;
font-size: 25px;
}
ul li{
padding-left: 15px;
list-style-type: none;
line-height: 45px;
border-bottom: 1px dashed #ccc;
}
ul li:last-child{
border-bottom: none;
}
/style
/head
body
div class="box"
h1
祝福冬奥
/h1
ul
li贝克汉姆/li
li 姚明/li
li张宏/li
li肖恩怀特/li
/ul
/div
script src="./jquery-1.12.4.js"/script
script
/* $('li:eq(0)').mouseenter(function(){
$(this).css('background','red')
})
$('li:eq(0)').mouseout(function(){
$(this).css('background','')
}) */
$('li').hover(function(){
/* css('background','')不会改变元素原来bgc样式 */
$('li').first().css('background','red').siblings().css('background','')
})
$('li:eq(1)').mouseenter(function(){
$(this).css('background','yellow')
})
$('li:eq(1)').mouseout(function(){
$(this).css('background','')
})
/script
style
.box{
margin: 30px auto;
width: 500px;
height: 300px;
border: 1px solid cyan;
position: relative;
}
.img-list img{
width: 500px;
height: 300px;
display: block;
position: absolute;
left: 0;
top: 0;
}
/style
/head
body
div class="box"
div class="img-list"
img src="./imgs/1.jpg" alt=""
img src="./imgs/2.jpg" alt=""
img src="./imgs/3.jpg" alt=""
img src="./img/4.jpg" alt=""
/div
/div
button style="margin-left: 450px;" class="left"后退/button
button class="right"前进/button
script src="./jquery-1.12.4.js"/script
script
/* 定时器 过2s 显示一张图 显示最后一张图的时候再跳回第一张 */
/* let i = 0
$('img').eq(0).show().siblings().hide();
setInterval(function(){
i++;
if(i==$('img').length){
i=0
} */
/* 淡入淡出 */
/* $('img').eq(i).fadeIn('slow').siblings().fadeOut('slow')
},2000) */
let i = 0;
let timer = null
$('img').eq(i).show().siblings().hide();
/* 自动播放 */
show();
$('.left').click(function(){
/* 先清空定时器 阻止自动播放 */
clearInterval(timer);
i--;
/* 防止减到-1找不到对应的图片 */
if(i == -1){
i=$('img').length - 1
}
/* 展示当前对应的图片其他图片淡出 */
$('img').eq(i).show().siblings().hide();
/* 继续开始自动播放 */
show();
})
$('.right').click(function(){
/* 先清空定时器 阻止自动播放 */
clearInterval(timer);
i++;
/* 防止减到-1 找不到对应的图片 */
if(i==$('img').length){
i=0
}
/* 展示当前对应的图片其他图片淡出 */
$('img').eq(i).show().siblings().hide();
/* 继续开始自动播放 */
show()
/* 定时器 过两秒 显示一张图 显示最后一张图的时候
再跳到第一张 */
})
function show(){
timer = setInterval(function (){
i++;
if(i == $('img').length){
i = 0
}
/* fadeIn 淡入 fadeOut淡出 */
$('img').eq(i).fadeIn().siblings().fadeOut();
},2000)
}
/script
body
用户名:input type="text"br
密码: input type="password"
script src="./jquery-1.12.4.js"/script
script
/* 按下键盘 */
/* $('input[type=text]').keydown(function(){
alert('我按下了')
}) */
/* 抬起键盘 */
/* $('input[type=password]').keyup(function(){
alert('我抬起了')
}) */
/* keypress 连续敲击键盘 */
/* $('input[type=text]').keypress(function(){
alert('连续打字')
}) */
$(window).keyup(function(e){
if(e.keyCode==13){
alert('已提交')
}
})
/script
/body
你的提问就是答案。鼠标移出DIV1,触发事件,事件中可以做一个延时(延时的方法很多,比如计时器,比如倒计时,比如一个指定事件的动画效果等),延时结束时隐藏DIV2即可。其实不用这么复杂,你只需要对DIV1做hover事件处理即可,鼠标移入时对DIV2做一个slideDonw动画,鼠标移出时对DIV2做一个slideUp动画,调整一下动画速度即可。或者用animate也行,看你喜好了。
mouseover() 鼠标进入(进入子元素也触发)
mouseout() 鼠标离开(离开子元素也触发)
mouseenter() 鼠标进入(进入子元素不触发)
mouseleave() 鼠标离开(离开子元素不触发)