如何在鼠标退出时删除 JS 悬停功能
How can I remove a JS hover function on mouseout?
我找到了以下 js 代码,通过子div 中的链接交换父div 的背景,但悬停状态保持不变,而不是在鼠标退出时返回到原始状态。谁能帮我调整代码以在鼠标离开链接后返回父div的背景?提前谢谢你。
$('.background-changer').on('mouseover', 'a', function () {
var background = "url('" + $(this).attr('data-background') + "')";
$('.background-changer').css('background-image', background)
});
});
<div id="navBar" style="background: url(images/navigation-background-0.gif);" class="background-changer">
<div id="navBarCell1"><a href="#" title="Resort" target="_parent" data-background="images/navigation-background-1.gif">Resort</a></div>
</div>
#navBar {
height: 38px;
width: 760px;
float: right;
background-repeat: no-repeat;
}
#navBarCell1 {
float: left;
width: 75px;
text-align: center;
height: 26px;
overflow: hidden;
margin: 0px;
padding-top: 9px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
}
#navBarCell1 a:link {
font-family: Arial, Helvetica, sans-serif;
font-size: 10px;
text-transform: lowercase;
color: #000;
text-align: center;
text-decoration: none;
padding: 20px;
margin-top: 10px;
}
您可以保留您拥有的内容,但在将背景设置为链接的 url 之前,使用当前背景 URL 向父div 添加一个数据属性。 然后绑定到鼠标退出事件并将其重新设置,如下所示:
var bgChanger = $('.background-changer');
bgChanger.on('mouseenter', 'a', function () {
var background = "url('" + $(this).attr('data-background') + "')";
bgChanger.data('original-background', bgChanger.css('background-image')).css('background-image', background);
}
bgChanger.on('mouseout', function(){
bgChanger.css('background-image', bgChanger.data('originalBackground'));
});
我还没有测试过这个,但它应该可以工作。
如果你真的需要使用JS来做到这一点,你可以使用这样的悬停函数:
工作示例 1
$('#navBar').hover(function () {
$('#navBar').css({
'backgroundImage': 'url( --- )' // image 2
});
},
function () {
$('#navBar').css({
'backgroundImage': 'url( --- )' // image 1
});
});
.hover()
的 API 文档
但正如SLaks在评论中提到的,首选的方法可能是只使用CSS :hover
如下所示:
工作示例 2
#navBar {
height: 38px;
width: 100%;
background-image: url( --- ); /* image 1 */
background-size:20px;
}
#navBar:hover{
background-image: url( --- ); /* image 2 */
}
:hover
的 MDN 文档
相关文章:
- addData()从最新图表中删除.js 2.1.3-怎么了
- 删除JS数组中的最小数字
- 如何删除↵JS字符串中的字符
- 正则表达式用于删除 js 中的 css 规则
- 从给定第一个的另一个对象中删除JS对象(行)
- 如何动态添加和删除 js 文件
- 删除 js 数组中的 html 元素的最佳方法
- 如何在 mvc3 Web 应用程序的生产版本中删除 JS 日志记录调用
- 如何使用 PHP 删除 JS 注释
- 如何在完全加载之前从一个页面中删除 js 文件
- 如何从新的空 MVC 项目中删除 js 脚本
- 如何在鼠标退出时删除 JS 悬停功能
- 如何删除JS中参数指定的数组中的元素
- 如何从这个数据结构中删除js数组中的数据
- jQuery:如何在运行时插入或删除.js文件
- 是否有一种方法可以删除JS库中未使用的行
- 如何从字符串中删除html标签,而不删除Js中的特定标签
- 删除JS字符串中连续的竖条
- 从页面中删除js代码
- 删除JS选项卡,切换活动