【发布时间】:2017-06-23 07:22:23
【问题描述】:
我在响应式网站上的菜单遇到以下问题:
我创建了一个 html 菜单,其中包含 ul/li-结构,其中包含作为类别名称的链接
<ul>
<li>
<a href="linkToCat">maincat1</a>
<ul>
<li>
<a href="linkToCat">subcat1.1</a>
<ul>
//deeper category stucture
</ul>
</li>
</ul>
</li>
<li>
<a href="linkToCat">maincat2</a>
<ul>
<li>
<a href="linkToCat">subcat2.1</a>
</li>
<li>
<a href="linkToCat">subcat2.2</a>
</li>
</ul>
</li>
</ul>
<style>
li > ul {
display:none;
}
li:hover > ul {
display:block;
}
</style>
我只在开头显示主猫,子猫在悬停时打开,如JSFiddle 所示。
在桌面上一切正常。问题是,一旦我使用链接作为类别名称(我需要这样做),它就不适用于触摸设备(例如智能手机/平板电脑)。
有没有什么方法可以制作一个可以在桌面上悬停的菜单,并且在使用链接作为类别名称时仍然可以在触摸设备上使用?
我对使用 JavaScript 或 jQuery 来解决这个问题没有任何问题。通常我使用响应式设计和智能手机或其他移动设备的额外菜单。因此我使用@media screen。遗憾的是,这不适用于所有触摸设备,例如一些 iPad 或 Microsoft Surface 等更大的平板电脑。
感谢您的回答和提示。
编辑:
问题是<a href> 链接总是被触发,所以当我点击一个类别时菜单不会打开。
我现在还在JSFiddle 中添加了指向类别名称的链接
【问题讨论】:
-
我认为touch mobile中没有这样的悬停事件。
-
@Rajesh Baskaran 是的,遗憾的是我找不到一个.. 唯一对我有用的是双击的解决方法
-
您可以将悬停条件设为默认值。例如:如果悬停时有背景颜色,则只需将媒体查询编写为元素 backgroundcolor:none
标签: jquery html menu hover touch