【发布时间】:2017-05-29 03:43:48
【问题描述】:
所以我在我的免费照片网站顶部使用了一个悬停菜单。
在桌面上,当您将鼠标悬停在其上时,它会正常工作,会出现菜单。 当你将鼠标悬停在它上面时,它就会消失。
但是,移动设备没有悬停行为,因此当您在移动设备上单击菜单使其出现时,您无法摆脱它。
如果您单击菜单(但不是子链接)或页面上的任何其他位置,我需要它消失。
这是我正在使用的 HTML 代码:
<div class="menu-wrap">
<nav class="menu">
<ul class="clearfix">
<li>
<a href="#">Good Free Photos Menu<span class="arrow">▼</span></a>
<ul class="sub-menu">
<li><a href="https://www.goodfreephotos.com/Free-Stock-Photos/">Free Stock Photos</a></li>
<li><a href="https://www.goodfreephotos.com/public-domain-images/">Public Domain Images</a></li>
<li><a href="https://www.goodfreephotos.com/tags/featured">Featured</a></li>
<li><a href="https://www.goodfreephotos.com/pages/last-100-images">Last 100 images</a></li>
<li><a href="https://www.goodfreephotos.com/news">News</a></li>
<li><a href="https://www.goodfreephotos.com/category/tutorials/">Tutorials</a></li>
</ul>
</li>
</ul>
</nav>
</div>
和css:
.clearfix:after {
display:block;
clear:both;
}
/*----- Menu Outline -----*/
.menu-wrap {
width:100%;
box-shadow:0px 1px 3px rgba(0,0,0,0.2);
background:#3e3436;
}
.menu {
width:1000px;
margin:0px auto;
}
.menu li {
margin:0px;
list-style:none;
font-family:'Ek Mukta';
}
.menu a {
transition:all linear 0.15s;
color:#919191;
}
.menu li:hover > a, .menu .current-item > a {
text-decoration:none;
color:#be5b70;
}
.menu .arrow {
font-size:11px;
line-height:0%;
}
/*----- Top Level -----*/
.menu > ul > li {
float:left;
display:inline-block;
position:relative;
font-size:19px;
}
.menu > ul > li > a {
padding:10px 40px;
display:inline-block;
text-shadow:0px 1px 0px rgba(0,0,0,0.4);
}
.menu > ul > li:hover > a, .menu > ul > .current-item > a {
background:#2e2728;
}
/*----- Bottom Level -----*/
.menu li:hover .sub-menu {
z-index:1;
opacity:1;
}
.sub-menu {
width:160%;
padding:5px 0px;
position:absolute;
top:100%;
left:0px;
z-index:-1;
opacity:0;
transition:opacity linear 0.15s;
box-shadow:0px 2px 3px rgba(0,0,0,0.2);
background:#2e2728;
}
.sub-menu li {
display:block;
font-size:16px;
}
.sub-menu li a {
padding:10px 30px;
display:block;
}
.sub-menu li a:hover, .sub-menu .current-item a {
background:#3e3436;
}
我知道这可能需要一些 JavaScript,但我不知道是什么代码。
【问题讨论】:
-
这是一个实时站点吗?我想对它进行检查,以便为您提供准确的答案
-
请注意,触摸屏不仅限于移动设备——我的笔记本电脑有一个触摸屏,我经常与鼠标一起使用。
-
是的,它在我的网站goodfreephotos.com 上运行。使用鼠标时效果很好,但在我的手机上效果不佳。
标签: javascript css menu hover accessibility