#javascript #css #function
Вопрос:
У меня есть небольшая ошибка, когда я создал всплывающее меню навигации для мобильных режим, и есть две кнопки, одна кричит мобильной навигации, а другой забирает, я поставил кнопку Закрыть, чтобы взять меню справа -400px
, чтобы выйти из поля зрения посетителя, но есть полоса прокрутки в нижней части страницы, где она принимает вас на правой стороне страницы, где навигационная панель становится видимым снова, может кто-нибудь помочь мне скрыть эту панель навигации после того, как функция была вызвана. Спасибо.
var navLinks = document.getElementById("navLinks");
function showMenu() {
navLinks.style.right = "0";
}
function hideMenu() {
navLinks.style.right = "-400px";
}
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Home | LuxxMob</title>
<link rel="stylesheet" href="style.css" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Teko:wght@400;500;700amp;display=swap" rel="stylesheet" />
<script src="https://kit.fontawesome.com/360332bae9.js" crossorigin="anonymous"></script>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@200;400;700amp;display=swap" rel="stylesheet" />
</head>
<body>
<section class="header">
<div class="menu-header">
<nav>
<a href="index.html"><img src="images/HD_FILE (2).png" /></a>
<div class="nav-links" id="navLinks">
<i class="fas fa-times" onclick="hideMenu()"></i>
<ul>
<li>
<a href="index.html">Home</a>
</li>
<li>
<a href="news.html">News</a>
</li>
<li>
<a href="players.html">Players</a>
</li>
<li>
<a href="partners.html">Partners</a>
</li>
<li>
<a href="about-us.html">About Us</a>
</li>
</ul>
</div>
<i class="fas fa-bars" onclick="showMenu()"></i>
</nav>
</div>
<div class="main-texts">
<div class="text-box">
<h1>Welcome To <em>LuxxMob</em></h1>
<p>
An upcoming eSports team, recruiting talented gamers and creative content creators.
</p>
<a href="#" class="hero-btn">About Us</a>
</div>
</div>
</section>
<!--NEXT SECTION MEET THE OWNER-->
<section class="meet-me">
<h1>Meet The Players</h1>
<div class="player-info">
<p>
Meet the competitive players, content creators and the owner of LuxxMob. A rapidly growing team of highly skilled members, providing some of the best content and gameplay available on social media currently.
</p>
</div>
</section>
</body>
Комментарии:
1. почему нет
display = "none"
?2. Не могу этого видеть, это, возможно, один из немногих случаев, когда картинка может быть полезной
3. примечание: css слева, справа, сверху, снизу не влияют, если позиция статична (по умолчанию) — возможно, вы хотите сделать какую-то позицию абсолютной, относительной или фиксированной … что угодно, только не статичное
4. @TrueChow: Вы также должны добавить соответствующий CSS.
Ответ №1:
Используйте display = none
и display = block
для скрытия/отображения вашего div
var navLinks = document.getElementById("navLinks");
function showMenu() {
navLinks.style.display= "block";
}
function hideMenu() {
navLinks.style.display= "none";
}
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Home | LuxxMob</title>
<link rel="stylesheet" href="style.css" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Teko:wght@400;500;700amp;display=swap" rel="stylesheet" />
<script src="https://kit.fontawesome.com/360332bae9.js" crossorigin="anonymous"></script>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@200;400;700amp;display=swap" rel="stylesheet" />
</head>
<body>
<section class="header">
<div class="menu-header">
<nav>
<a href="index.html"><img src="images/HD_FILE (2).png" /></a>
<div class="nav-links" id="navLinks">
<i class="fas fa-times" onclick="hideMenu()"></i>
<ul>
<li>
<a href="index.html">Home</a>
</li>
<li>
<a href="news.html">News</a>
</li>
<li>
<a href="players.html">Players</a>
</li>
<li>
<a href="partners.html">Partners</a>
</li>
<li>
<a href="about-us.html">About Us</a>
</li>
</ul>
</div>
<i class="fas fa-bars" onclick="showMenu()"></i>
</nav>
</div>
<div class="main-texts">
<div class="text-box">
<h1>Welcome To <em>LuxxMob</em></h1>
<p>
An upcoming eSports team, recruiting talented gamers and creative content creators.
</p>
<a href="#" class="hero-btn">About Us</a>
</div>
</div>
</section>
<!--NEXT SECTION MEET THE OWNER-->
<section class="meet-me">
<h1>Meet The Players</h1>
<div class="player-info">
<p>
Meet the competitive players, content creators and the owner of LuxxMob. A rapidly growing team of highly skilled members, providing some of the best content and gameplay available on social media currently.
</p>
</div>
</section>
</body>
Комментарии:
1. спасибо, что это сработало, но плавная анимация, появляющаяся справа, исчезла, вы знаете, как это исправить
2. вы хотите, чтобы меню занимало/лежало поверх содержимого или отодвигало содержимое в сторону/вниз
3. наложение содержимого
Ответ №2:
Вы должны установить overflow-x: hidden;
на тело или родительский элемент навигации.
Ответ №3:
Либо используйте display
свойства, чтобы скрыть/отобразить строку меню, либо, если вам действительно нужна анимация слайдов влево/вправо, вы можете использовать trasnform
и свойства перехода, подобные этому:
var navLinks = document.getElementById("navLinks");
function showMenu() {
console.log('Show');
navLinks.style.transition = "all 0.9s";
navLinks.style.transform = "translateX(0)";
}
function hideMenu() {
console.log('Hide');
navLinks.style.transition = "all 0.9s";
navLinks.style.transform = "translateX(-400px)";
}
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Home | LuxxMob</title>
<link rel="stylesheet" href="style.css" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Teko:wght@400;500;700amp;display=swap" rel="stylesheet" />
<script src="https://kit.fontawesome.com/360332bae9.js" crossorigin="anonymous"></script>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@200;400;700amp;display=swap" rel="stylesheet" />
</head>
<body>
<section class="header">
<div class="menu-header">
<nav>
<a href="index.html"><img src="images/HD_FILE (2).png" /></a>
<div class="nav-links" id="navLinks">
<button class="fas fa-times" onclick="hideMenu()"></button>
<ul>
<li>
<a href="index.html">Home</a>
</li>
<li>
<a href="news.html">News</a>
</li>
<li>
<a href="players.html">Players</a>
</li>
<li>
<a href="partners.html">Partners</a>
</li>
<li>
<a href="about-us.html">About Us</a>
</li>
</ul>
</div>
<i class="fas fa-bars" onclick="showMenu()"></i>
</nav>
</div>
<div class="main-texts">
<div class="text-box">
<h1>Welcome To <em>LuxxMob</em></h1>
<p>
An upcoming eSports team, recruiting talented gamers and creative content creators.
</p>
<a href="#" class="hero-btn">About Us</a>
</div>
</div>
</section>
<!--NEXT SECTION MEET THE OWNER-->
<section class="meet-me">
<h1>Meet The Players</h1>
<div class="player-info">
<p>
Meet the competitive players, content creators and the owner of LuxxMob. A rapidly growing team of highly skilled members, providing some of the best content and gameplay available on social media currently.
</p>
</div>
</section>
</body>