【发布时间】:2017-10-13 03:15:49
【问题描述】:
在我的导航上有一个子页面,我正在使用此代码选项 1 和选项 2 都在工作,我可以选择使用其中的哪一个,但问题是在移动设备视图中悬停时子页面仍然显示,这对移动设备来说是个坏主意,我想要实现的是,当涉及到移动设备示例尺寸 768 时,导航栏是可点击的并显示子页面,而不是悬停导航栏并显示子页面。
选项1:
ul.nav li.dropdown:hover > ul.dropdown-menu{
display: block;
margin: 0;
}
选项2:
jQuery('ul.nav li.dropdown').hover(function() {
jQuery(this).find('.dropdown-menu').stop(true, true).show();
jQuery(this).addClass('open');
}, function() {
jQuery(this).find('.dropdown-menu').stop(true, true).hide();
jQuery(this).removeClass('open');
});
我的网站是在 bootstrap 3、wordpress 中构建的,我使用navwalker进行导航
希望您能帮助我解决移动设备导航栏问题。谢谢
我找到了解决问题的方法
在桌面视图中,子页面会在您悬停父导航时显示,而在移动设备视图中,子页面只会在您单击父导航时显示。
感谢 user1079877
$('.dropdown').mouseenter(function(){
if(!$('.navbar-toggle').is(':visible')) { // disable for mobile view
if(!$(this).hasClass('open')) { // Keeps it open when hover it again
$('.dropdown-toggle', this).trigger('click');
}
}
});
【问题讨论】:
-
您可以将选项 1 与媒体查询一起使用。我相信大多数触控设备的浏览器不会对悬停做任何事情。
-
我尝试在 768 中将 display:block 转换为 display:none,当我点击父导航时,子页面不会显示。
标签: jquery html css wordpress twitter-bootstrap