jquery - 单击链接后,我在移动视图上打开和关闭菜单时遇到问题
问题描述
我正在尝试在我正在开发的网站的移动视图中创建一个菜单。
我试图创建一个在单击链接后关闭菜单的功能。
网站链接: https ://parlourplaces.de/ HTML:
$(document).on("click",".menu", function(){
$(".menu").closest(".menu").hide();
});
* {
box-sizing: border-box;
font-weight: 500;
}
a,
a:visited,
a:hover,
a:active {
color: inherit;
text-decoration: none;
}
.outer-menu {
right: 0;
z-index: 1;
}
.outer-menu .checkbox-toggle {
position: absolute;
top: 0;
right: 0;
z-index: 2;
cursor: pointer;
width: 60px;
height: 60px;
opacity: 0;
}
.outer-menu .checkbox-toggle:checked + .hamburger > div {
transform: rotate(135deg);
}
.outer-menu .checkbox-toggle:checked + .hamburger > div:before,
.outer-menu .checkbox-toggle:checked + .hamburger > div:after {
top: 0;
transform: rotate(90deg);
}
.outer-menu .checkbox-toggle:checked + .hamburger > div:after {
opacity: 0;
}
.outer-menu .checkbox-toggle:checked ~ .menu {
pointer-events: auto;
visibility: visible;
}
.outer-menu .checkbox-toggle:checked ~ .menu > div {
transform: scale(1);
transition-duration: 0.75s;
}
.outer-menu .checkbox-toggle:checked ~ .menu > div > div {
opacity: 1;
transition: opacity 0.4s ease 0.4s;
}
.outer-menu .checkbox-toggle:checked:hover + .hamburger > div {
transform: rotate(225deg);
}
.outer-menu .hamburger {
position: absolute;
top: 16px;
right: 16px;
z-index: 1;
width: 60px;
height: 60px;
padding: 0.5em 1em;
border-radius: 0 0.12em 0.12em 0;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
}
.outer-menu .hamburger > div {
position: relative;
flex: none;
width: 100%;
height: 4px;
background: white;
transition: all 0.4s ease;
display: flex;
align-items: center;
justify-content: center;
}
.outer-menu .hamburger > div:before,
.outer-menu .hamburger > div:after {
content: '';
position: absolute;
z-index: 1;
top: -10px;
right: 0;
width: 100%;
height: 4px;
background: inherit;
transition: all 0.4s ease;
}
.outer-menu .hamburger > div:after {
top: 10px;
}
.outer-menu .menu {
position: fixed;
top: 0;
right: 0;
width: 100%;
height: 100%;
pointer-events: none;
visibility: hidden;
overflow: hidden;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
outline: 1px solid transparent;
display: flex;
align-items: center;
justify-content: center;
}
.outer-menu .menu > div {
width: 260vw;
height: 260vw;
color: white;
background: rgba(0, 0, 0, 0.85);
border-radius: 50%;
transition: all 0.4s ease;
flex: none;
transform: scale(0);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
}
.outer-menu .menu > div > div {
text-align: center;
max-width: 90vw;
max-height: 100vh;
opacity: 0;
transition: opacity 0.4s ease;
overflow-y: auto;
flex: none;
display: flex;
align-items: center;
justify-content: center;
}
.outer-menu .menu > div > div > ul {
list-style: none;
padding: 0 1em;
margin: 0;
display: block;
max-height: 100vh;
}
.outer-menu .menu > div > div > ul > li {
padding: 0;
margin: 1em;
font-size: 24px;
display: block;
}
.outer-menu .menu > div > div > ul > li > a {
position: relative;
display: inline;
cursor: pointer;
transition: color 0.4s ease;
}
.outer-menu .menu > div > div > ul > li > a:hover {
color: #adff2f;
}
.switcher {
font-size: 20px;
padding: 10px 0px 10px 0px;
margin-top: 70px;
}
<div class="outer-menu">
<input class="checkbox-toggle" type="checkbox" />
<div class="hamburger">
<div></div>
</div>
<div class="menu">
<div>
<div>
<ul>
<li><a href="https://parlourplaces.de/#section-334-22">Wie es funktioniert</a></li>
<li><a href="https://parlourplaces.de/#section-338-22">Coworking</a></li>
<li><a href="https://parlourplaces.de/#section-38-22">Unser Studio</a></li>
<li><a href="https://parlourplaces.de/#section-342-22">Preisgestaltung</a></li>
<li><a href="https://parlourplaces.de/#section-353-22">Über uns</a></li>
<li><a href="https://parlourplaces.de/#section-6-22">Kontakt</a></li>
<center><div class="switcher"><?php echo do_shortcode("[wpml_language_selector_widget]"); ?></div></center>
</ul>
</div>
</div>
</div>
</div>
目前,这个 JS “有点作用”。它关闭菜单,但按钮不再起作用。我假设“.menu”被永久隐藏,其余的类仍然可见。
知道如何纠正它吗?
抱歉,如果我错误地发布了代码,我是这个论坛上的初学者,并且总体上使用 CSS 和 JS,一切对我来说似乎都是压倒性的:/
提前感谢您的任何建议!干杯!
解决方案
您可能希望将事件侦听器附加到链接本身并关闭菜单。你可以这样做:
$(function(){
$(".menu a").on("click", function(){
$(".menu").css('visibility', 'hidden');
});
});
这行得通吗?
推荐阅读
- python-3.x - 如何在本地运行 apache Beam?
- filenames - GNU Make:删除第一个点后文件名的所有部分
- php - 如何修改对象转换为数组的方式?
- android - 使用 smack 发送消息时丢失消息
- vue.js - v-text-field 没有占据容器的整个宽度
- angular - 用户输入日期时如何自动添加点?
- java - 在 Appium 的亚马逊应用程序中切换上下文
- reactjs - 如何在功能组件中调用鼠标悬停的两个函数?
- asp.net-web-api - 如何在 Xamarin Forms 中使用 Web API 将配置文件图像存储到 SQL Server
- beautifulsoup - BeautifulSoup 没有正确提取 div