Javascript 如何使元素在悬停时处于活动状态,并在im悬停在另一个特定div上时保持活动状态
我有一个带有类别的菜单栏, 当我将鼠标悬停在某个类别上时,它下面会出现一个带有子类别的大下拉列表 我已经创建了它,你可以在这里看到它 现在,当我将鼠标悬停在类别上时,其背景将变为灰色, 当我将光标向下移动到子类别下拉列表时,类别上的灰色背景消失了 我想找到一种方法,使类别背景在悬停时变成灰色, 然后当我将光标移动到“子类别”下拉列表时, 我希望类别保持在灰色背景中 当我将光标移到子类别下拉框外时,类别背景将消失 我想知道实现这一目标的最佳方式是什么 我认为,使用js或jquery,我们可以使类别在悬停时处于活动状态,并在光标位于“子类别”下拉列表上时使其保持活动状态,但在光标移出下拉框时使其处于非活动状态 关于如何解决这个问题的任何想法,或者您是否建议使用不同的方法来实现它。添加类名。活动 悬停时,将样式名称添加到.services快捷方式Javascript 如何使元素在悬停时处于活动状态,并在im悬停在另一个特定div上时保持活动状态,javascript,jquery,html,css,twitter-bootstrap,Javascript,Jquery,Html,Css,Twitter Bootstrap,我有一个带有类别的菜单栏, 当我将鼠标悬停在某个类别上时,它下面会出现一个带有子类别的大下拉列表 我已经创建了它,你可以在这里看到它 现在,当我将鼠标悬停在类别上时,其背景将变为灰色, 当我将光标向下移动到子类别下拉列表时,类别上的灰色背景消失了 我想找到一种方法,使类别背景在悬停时变成灰色, 然后当我将光标移动到“子类别”下拉列表时, 我希望类别保持在灰色背景中 当我将光标移到子类别下拉框外时,类别背景将消失 我想知道实现这一目标的最佳方式是什么 我认为,使用js或jquery,我们可以使类别
<style>
.services-shortcut {
-webkit-transition: background-color 500ms linear 200ms;
-o-transition: background-color 500ms linear 200ms;
transition: background-color 500ms linear 200ms;
}
.services-shortcut:hover,
.services-shortcut.active {
color: #555;
background: none repeat scroll 0% 0% #ddd;
}
</style>
<script>
jQuery('div.dropdown').hover(function() {
jQuery(this).find('.services-shortcut').addClass('active');
jQuery(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
}, function() {
jQuery(this).find('.services-shortcut').removeClass('active');
jQuery(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
});
</script>
试试这个:
CSS:
HTML:
请务必查看jQuery文档中有关$.hover和css功能的内容。您认为我想到的方法可以实现这一点吗?或者您是否建议使用更好的方法,例如jQuery中的.mouseover函数?我正在尝试使.service快捷方式在经过一定的延迟后变为活动状态,类似于我添加的下拉菜单。延迟(200).fadeIn(500)在这个.addClass('active')之后,但它不起作用。有什么想法吗?–谢谢,这非常有效,我使用了第一种方法。我正在尝试使.service快捷方式在某种延迟后变为活动状态,类似于我添加的下拉列表。delay(200).fadeIn(500)在这个.addClass('active')之后,但它不起作用。有什么想法吗?
jQuery('div.dropdown').on(
'mouseenter', function () {
jQuery(this).find('.services-shortcut').addClass('active');
jQuery(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
},
'mouseleave', function () {
jQuery(this).find('.services-shortcut').removeClass('active');
jQuery(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
}
);
.category-overlay{
width:1190px;
height:90px;
background:#ddd;
margin-top:30px;
}
.services-shortcut {
color: #555;
background: none repeat scroll 0% 0% #ddd;
}
<div class="container">
<div class="row">
<div class="col-xs-12">
<h1></h1> <div class="category-box">
<div class="dropdown" class="">
<a href="HTTP://GOOGLE.COM" target="_blank" style="width: 12.5%; float: left;" data-toggle="dropdown">
<div data-category>
<i class="fa fa-bullhorn fa-3x"></i>
<h5>CATEGORY 1</h5>
</div>
</a>
<div class="dropdown-menu category-overlay">
<a href="#">Action 1</a>
</div>
</div>
<div class="dropdown">
<a href="HTTP://GOOGLE.COM" style="width: 12.5%; float: left;" data-toggle="dropdown">
<div data-category>
<i class="fa fa-car fa-3x"></i>
<h5>CATEGORY 2</h5>
</div>
</a>
<div class="dropdown-menu category-overlay">
<a href="#">Action 2</a>
</div>
</div>
<div class="dropdown">
<a href="HTTP://GOOGLE.COM" style="width: 12.5%; float: left;" data-toggle="dropdown">
<div data-category>
<i class="fa fa-file-text fa-3x"></i>
<h5>CATEGORY 3</h5>
</div>
</a>
<div class="dropdown-menu category-overlay">
<a href="#">Action 3</a>
</div>
</div>
<div class="dropdown">
<a href="HTTP://GOOGLE.COM" style="width: 12.5%; float: left;" data-toggle="dropdown">
<div data-category>
<i class="fa fa-home fa-3x" style="margin-bottom: -20px; margin-top: -11px; font-size: 4em;"></i>
<h5>CATEGORY 4</h5>
</div>
</a>
<div class="dropdown-menu category-overlay">
<a href="#">Action 4</a>
</div>
</div>
<div class="dropdown">
<a href="HTTP://GOOGLE.COM" style="width: 12.5%; float: left;" data-toggle="dropdown">
<div data-category>
<i class="fa fa-cogs fa-3x"></i>
<h5>CATEGORY 5</h5>
</div>
</a>
<div class="dropdown-menu category-overlay">
<a href="#">Action 5</a>
</div>
</div>
<div class="dropdown">
<a href="HTTP://GOOGLE.COM" style="width: 12.5%; float: left;" data-toggle="dropdown">
<div data-category>
<i class="fa fa-users fa-3x"></i>
<h5>CATEGORY 6</h5>
</div>
</a>
<div class="dropdown-menu category-overlay">
<a href="#">Action 6</a>
</div>
</div>
<div class="dropdown">
<a href="HTTP://GOOGLE.COM" style="width: 12.5%; float: left;" data-toggle="dropdown">
<div data-category>
<i class="fa fa-heart fa-3x"></i>
<h5>CATEGORY 7</h5>
</div>
</a>
<div class="dropdown-menu category-overlay">
<a href="#">Action 7</a>
</div>
</div>
<div class="dropdown">
<a href="HTTP://GOOGLE.COM" style="width: 12.5%; float: left;" data-toggle="dropdown">
<div data-category<h1></h1>>
<i class="fa fa-briefcase fa-3x"></i>
<h5>CATEGORY 8</h5>
</div>
</a>
<div class="dropdown-menu category-overlay">
<a href="#">Action 8</a>
</div>
</div>
</div>
</div>
</div>
</div>
jQuery('div.dropdown').hover(function() {
jQuery(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
}, function() {
jQuery(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
});
$('div[data-category]').mouseenter(function(){
$(this).addClass('services-shortcut');
})
$('div[class=dropdown]').mouseleave(function(){
$(this).find('div[data-category]').removeClass('services-shortcut');
});