Панель навигации на экране мобильного устройства со странным эффектом мерцания

#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 да, панель навигации отображается на мгновение при загрузке страницы