JS / CSS - функция openNav () не работает на домашней странице (только) - PullRequest
1 голос
/ 20 марта 2020

По какой-то причине этот элемент (элемент меню) на сайте (XXXXXXXXXXXXXXXXX.com) недоступен, но ТОЛЬКО на главной странице.

Элемент отлично работает на других страницах и в редакторах.

Я не могу указать на то, что приводит к перерыву на домашней странице.

Я проверяю с помощью отладчика Chrome, но все равно не найти проблему, тем более как ее исправить.

Q: Какие могут быть возможные причины этой проблемы и что, по вашему мнению, будет хорошей отправной точкой для устранения неполадок?

Веб-сайт:

www.somewhatmystical.com

Элемент меню: https://www.w3schools.com/code/tryit.asp?filename=GD13CSPL7EEC

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <style>
            body {
                font-family: 'Lato', sans-serif;
            }

            * {
                box-sizing: border-box;
            }

            .column1 {
                color: white;
                float: left;
                width: 50%;
                padding-left: 200px;
                padding-right: 100px;
                padding-top: 200px;
                text-align: right;
                font-size: 50px;
                height: 575px;
                border-right: 1px solid gray;
                background-color: black;
            }

            .column2 {
                color: white;
                float: right;
                width: 50%;
                text-align: left;
                padding: 10px;
                font-size: 22px;
                padding-left: 100px;
                padding-top: 150px;
                text-decoration: none;
                height: 575px;
                background-color: black;
            }

            a:link {
                color: white;
            }

            a:hover {
                color: #C0A539;
            }

            .row:after {
                content: "";
                display: table;
                clear: both;
            }

            .overlay {
                height: 0px;
                width: 100%;
                position: fixed;
                top: 0;
                z-index: 1;
                top: 0;
                left: 0;
                bottom: 0;
                background-color: rgb(0,0,0);
                background-color: rgba(0,0,0);
                overflow-x: hidden;
                transition: 0.5s;
            }

            .overlay-content {
                position: relative;
                top: 25%;
                width: 100%;
                text-align: center;
                margin-top: 30px;
                color: #FFFFFF;
            }

            .overlay a {
                padding: 8px;
                text-decoration: none;
                color: #FFFFFF;
                display: block;
                transition: 0.3s;
            }

            .overlay a:hover, .overlay a:focus {
                color: #C0A539;
            }

            .overlay .closebtn {
                position: absolute;
                top: 20px;
                right: 45px;
                font-size: 60px;
            }

            @media screen and (max-height: 450px) {
                .overlay a {
                    font-size: 20px
                }

                .overlay .closebtn {
                    font-size: 40px;
                    top: 15px;
                    right: 35px;
                }
            }
        </style>
    </head>
    <body>
        <div id="myNav" class="overlay">
            <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
            <div class="overlay-content">
                <div class="row">
                    <div class="column1">
                        <p>welcome to our online art journey. You can read our thoughts or you can simply write to us</p><br><br>
                    </div>
                    <div class="column2">
                        <a href="#" style="text-decoration: none;">blog</a>
                        <a href="#" style="text-decoration: none;">quotes</a>
                        <a href="#" style="text-decoration: none;">shop</a>
                        <a href="#" style="text-decoration: none;">about</a>
                        <a href="#" style="text-decoration: none;">contact</a>
                        <br><br><br><br><br>
                    </div>
                </div>
            </div>
        </div>

<span style="font-size:50px;cursor:pointer;color:rgba(192,192,192,0);text-align:center;display:block;margin-top: -65px" onclick="openNav()">MENU</span>

        <script>
            function openNav() {
                document.getElementById("myNav").style.height = "100%";
            }

            function closeNav() {
                document.getElementById("myNav").style.height = "0";
            }
        </script>
    </body>
</html>

Ответы [ 3 ]

0 голосов
/ 20 марта 2020

Поместите его в div и поместите div в верхнем правом углу с помощью position: absolute, затем добавьте к нему слушатель onclick. Убедитесь, что у него есть width и height.

. Для подтверждения его нажатия вы можете установить console.log в качестве начальной функции-обработчика события.

0 голосов
/ 20 марта 2020

Проблема заключалась в следующем:

В другом элементе использовался класс ".overlay", который конфликтовал с элементом меню класса ".overlay".

Я просто переименовал другой класс в " .overlay1 "

  • Кредиты JBis за указание на это.
0 голосов
/ 20 марта 2020

Это кликабельно. Это в функции проблема о показе. Вы можете изменить высоту отображения, но вы также должны попытаться изменить стиль в ваших подэлементах в меню

<script>
            function openNav() {
                document.getElementById("myNav").style.display= "contents";
            }

            function closeNav() {
                document.getElementById("myNav").style.height = "none";
            }
        </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...