You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jQuery实现鼠标移入隐藏上层Div、移出恢复显示功能?

问题分析与解决方案

我看你是想实现鼠标移入时隐藏上层半透明的.dimmer div,移出时恢复显示,但当前的jQuery代码没达到预期效果对吧?问题出在箭头函数的this指向上!

为什么原代码不生效?

箭头函数不会绑定自己的this,它会继承外层作用域的this。这里外层是$(document).ready()的回调函数,this指向的是document对象,所以$(this)根本不是你要操作的.dimmer元素,自然hide()和show()方法起不到作用。

修正方案一:使用普通函数表达式

把事件回调换成普通函数,此时this会绑定到触发事件的.dimmer元素:

$(document).ready(function() { 
  $('.dimmer').on('mouseenter', function(event) { 
    $(this).hide(); 
  }).on('mouseleave', function(event) { 
    $(this).show(); 
  }); 
});

修正方案二:使用event.currentTarget(保留箭头函数)

如果坚持想用箭头函数,可以通过事件对象的currentTarget属性获取触发事件的元素:

$(document).ready(function() { 
  $('.dimmer').on('mouseenter', event => { 
    $(event.currentTarget).hide(); 
  }).on('mouseleave', event => { 
    $(event.currentTarget).show(); 
  }); 
});

额外提示:确保层叠关系正确

别忘了给父元素.experience设置position: relative,让.dimmer能通过绝对定位覆盖在它上层,CSS可以这样写:

.experience {
  position: relative; /* 作为子元素绝对定位的参照 */
  background: url("cmu-110.png") no-repeat center; 
  height: 110px;
  /* 补充宽度等其他样式 */
}

.dimmer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5); /* 半透明黑色遮罩 */
  transition: opacity 0.3s; /* 可选:添加过渡动画让显示隐藏更平滑 */
}

内容的提问来源于stack exchange,提问作者DCeppos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:06:04