#javascript #html #css
#javascript #HTML #css
Вопрос:
Здравствуйте, у меня проблема с переходом панели навигации с использованием метода переключения javascript в прослушивателе событий, все работает нормально, за исключением того, что когда я перезагружаю свою страницу, я получаю этот эффект мерцания, у кого-нибудь есть идеи о том, как остановить это?
кстати, я использую @media screen, поэтому моя панель навигации видна только на мобильном устройстве.
Вот ссылка на демоhttps://quizzical-hodgkin-1d9806.netlify.app
Ниже приведены мои файлы html, CSS и js, спасибо
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1">
<link rel="stylesheet" href="./style.css">
<title>WebSiteOne</title>
</head>
<body>
<nav>
<!--Logo or Icon-->
<div class="logo">
<h4>Web Site</h4>
</div>
<!--Links on nav bar-->
<ul class="nav-links">
<li><a href="#">Home</a></li>
<li><a href="#">LinkOne</a></li>
<li><a href="#">LinkTwo</a></li>
<li><a href="#">LinkThree</a></li>
<li><a href="#">LinkFour</a></li>
</ul>
<!--Burger button that is not a button-->
<div class="burger">
<div class="line1"></div>
<div class="line2"></div>
<div class="line3"></div>
</div>
</nav>
<script src="./app.js"></script>
</body>
</html>
@import url('https://fonts.googleapis.com/css2?family=Baloo Tammudu 2:wght@400;500amp;display=swap');
*{
padding: 0px;
margin: 0px;
box-sizing: border-box;
font-family: 'Baloo Tammudu 2', cursive;
}
nav{
display: flex;
justify-content: space-around;
background-color: rgb(160, 107, 148);
min-height: 12vh;
align-items: center;
}
.logo{
color: rgb(241, 241, 241);
text-transform: capitalize;
letter-spacing: 4px;
font-size: 20px;
}
.nav-links{
/*Add justify content space around and then you can play with the width*/
justify-content: space-around;
display: flex;
width: 40%;
}
.nav-links li{
list-style-type: none;
}
.nav-links a{
color: rgb(241, 241, 241);
text-decoration: none;
letter-spacing: 2px;
}
.burger div{
width: 25px;
height: 3px;
margin: 5px;
background-color: rgb(241, 241, 241);
}
.burger {
display: none;
cursor: pointer;
}
@media screen and (max-width: 1024px){
.nav-links{
width: 60%;
}
}
@media screen and (max-width: 768px){
body{
overflow-x: hidden;
}
nav{
min-height: 15vh;
}
.logo{
font-size: 23px;
}
.nav-links{
position: absolute;
right: 0px;
height: 100vh;
top: 15vh;
background-color: rgba(0, 0, 0);
background-color: rgba(160, 107, 148, 0.9);
flex-direction: column;
align-items: center;
width:50% ;
z-index: 1;
transform: translateX(100%);
transition: transform 0.7s ease-in;
}
.nav-links li{
opacity: 0;
}
.burger{
display: block;
padding-bottom: 7px;
}
}
.nav-active{
transform: translateX(0%);
}
const navOpens = () => {
const burger = document.querySelector('.burger');
const nav = document.querySelector('.nav-links');
burger.addEventListener('click', () => {
nav.classList.toggle('nav-active');
});
}
navOpens();
Комментарии:
1. Кажется, я не вижу проблемы, вы имеете в виду, что текст мерцает или панель навигации отображается как открытая на мгновение при загрузке страницы?
2. Я пробовал на iPad, IOS 13, а также в маленьком окне Windows 10 и не вижу никакого мерцания при перезагрузке. Отображается ли проблема на конкретном мобильном устройстве?
3. Я вижу «подпрыгивание» навигационной панели при прокрутке вверх и вниз на IOS, это связано? Я не вижу мерцания.
4. nicksource да, панель навигации отображается на мгновение при загрузке страницы