Переключение панели навигации: активная проблема

В настоящее время я столкнулся с проблемой с желаемыми эффектами CSS. Проблема в том, что у меня есть переключатель навигационной панели черного цвета. Когда я нажимаю на переключатель панели навигации, я хочу, чтобы при ее расширении цвет фона панели навигации был красным, а затем, когда я нажимаю на него и убираю панель навигации, цвет снова меняется с красного на черный. Но он становится красным только после того, как я нажимаю на него, а когда я отпускаю, он снова становится черным. Сценарий, который мне предложили, приведен ниже.

Свернуть/развернуть изображение:

Переключение панели навигации: активная проблема

Переключение панели навигации: активная проблема

Полная панель навигации:

Переключение панели навигации: активная проблема

PHP Ларавел

<header class = "header header_style_01">
    <nav class = "megamenu navbar navbar-default">
        <div class = "container">
            <div class = "navbar-header">
                <button type = "button" class = "navbar-toggle collapsed" id = "toggle-button" data-toggle = "collapse" data-target = "#navbar"
                    aria-expanded = "false" aria-controls = "navbar">
                    <span class = "sr-only">Toggle navigation</span>
                    <span class = "icon-bar"></span>
                    <span class = "icon-bar"></span>
                    <span class = "icon-bar"></span>
                </button>
                <a class = "navbar-brand" href = "/"><img src = "images/logos/smsGuru_logo.png"
                        height = "60px" alt = "sms guru" title = "cheap sms"></a>
            </div>



            <div id = "navbar" class = "navbar-collapse collapse">
                <!-- <ul class = "nav navbar-nav" style = "margin-top: 8px;margin-left: 550px;"> -->
                <!-- <li><a class = "active" href = "index.html">Home</a></li> -->
                <!--     <li><a href = "features.html">Features </a></li>
                    <li><a href = "domain.html">Domain</a></li>
                    <li><a href = "hosting.html">Hosting</a></li>
                    <li><a href = "pricing.html">Pricing</a></li>
                    <li><a href = "testimonials.html">Testimonials</a></li>
                    <li><a href = "contact.html">Contact</a></li> -->

                <!--  <li><h1 class = "contact_me"><b><a href = "http://360.my/w/60123240066">+6012 324 0066</a></b></h1></li> -->
                <!-- <li><h1 class = "contact_me"><b><a href = "http://360.my/w/60123240066">+6012 324 0066</a></b></h1></li> -->

                <!-- </ul> -->
                <ul class = "nav navbar-nav navbar-right">
                    <li>
                        <h1 class = "contact_me"><b><a
                                    href = "https://wa.me/60123240066?text=I+would+like+to+inquire+about"
                                    target = "_blank">+6012 3240 066</a></b></h1>
                    </li>
                    <!-- <li><a class = "btn-light btn-radius btn-brd log" href = "#" data-toggle = "modal" data-target = "#login"><i class = "fa fa-unlock"></i> Register</a></li> -->
                    <li><a class = "btn-light btn-radius btn-brd log" href = "https://sms.360.my/developers/v3.0"><i
                                class = "fa fa-file"></i> API</a></li>
                    <li><a class = "btn-light btn-radius btn-brd log" href = "https://sms.360.my/register"><i
                                class = "fa fa-unlock"></i> Register</a></li>
                    <!-- <li><a class = "btn-light btn-radius btn-brd log" href = "#" data-toggle = "modal" data-target = "#login"><i class = "fa fa-lock"></i> Login</a></li> -->
                    <li><a class = "btn-light btn-radius btn-brd log" href = "https://sms.360.my/login"><i
                                class = "fa fa-lock"></i>
                            Login</a></li>
                </ul>
            </div>
        </div>
    </nav>
</header>

файл custom.css ниже

 .header_style_01 {
    background-color: #2d3032;
    display: block;
    left: 0;
    padding: 15px 20px 5px !important;
    position: relative;
    right: 0;
    top: 0;
    width: 100%;
    z-index: 111;
}

.navbar-default .navbar-toggle {
    border-color: #2d3032;
    color: #fff !important;
    background-color: #2d3032 !important;
}
.navbar-default .navbar-toggle:active{
    background-color: #DD0000 !important;
    border-color: #DD0000;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
    border-color: transparent;
}

Скрипт в index.blade.php

<script>
document.addEventListener('DOMContentLoaded', function() {
    var button = document.getElementById('toggle-button');
    var navbarCollapse = document.getElementById('navbar');

    // Toggle 'active' class when the button is clicked
    button.addEventListener('click', function() {
        // Use a timeout to wait for the collapse animation to complete
        setTimeout(function() {
            if (navbarCollapse.classList.contains('in') || navbarCollapse.classList.contains('show')) {
                button.classList.add('active');
            } else {
                button.classList.remove('active');
            }
        }, 350); // Adjust delay to match the Bootstrap collapse animation duration
    });

    // Add 'active' class when the navbar is shown
    navbarCollapse.addEventListener('shown.bs.collapse', function() {
        button.classList.add('active');
    });

    // Remove 'active' class when the navbar is hidden
    navbarCollapse.addEventListener('hidden.bs.collapse', function() {
        button.classList.remove('active');
    });
});
</script>.

Я поместил этот код в index.blade.php так же, как и код. Но это все равно не сработает.

Сначала я использовал переключатель навигации: наведите курсор. Но в результате, когда я нажимаю на него, он остается красным. Но если я снова нажму на переключатель, он останется красным, и он останется красным, пока я не нажму на область за пределами панели навигации.

Ваше объяснение очень сбивает с толку. Это то, что вы имеете в виду: по умолчанию фон значка меню будет черным, когда вы нажмете на него (или когда он развернется), фон значка станет красным. При сворачивании меню цвет фона значка снова должен стать черным?

Meet 31.07.2024 07:31

Да, это то, что я хочу, но на данный момент это не будет работать так, а только станет красным фоном при нажатии кнопки Remin.

Rock Sora 31.07.2024 07:38

Это проблема JS, проблема PHP, проблема HTML или проблема CSS?

Nico Haase 31.07.2024 10:12
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проанализировав ваш код, я обнаружил, что вы тоже используете загрузку. Итак, если вы используете начальную загрузку, это решение поможет. Мы можем достичь желаемого результата только с помощью css. Следуйте инструкциям ниже.

  1. Добавьте collapsed рядом с navbar-toggler в HTML.
  2. Добавьте это .navbar-toggler.collapsed{background-color: black !important;} и .navbar-toggler {background-color: red !important;} в css.

Вот и все, ниже приведен пример.

.navbar-toggler.collapsed{background-color: black !important;}

.navbar-toggler {background-color: red !important;}
<link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet" integrity = "sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin = "anonymous">
<script src = "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity = "sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin = "anonymous"></script>

<nav class = "navbar navbar-expand-lg bg-body-tertiary">
  <div class = "container-fluid">
    <a class = "navbar-brand" href = "#">Navbar</a>
    <button class = "navbar-toggler collapsed" type = "button" data-bs-toggle = "collapse" data-bs-target = "#navbarNav" aria-controls = "navbarNav" aria-expanded = "false" aria-label = "Toggle navigation">
      <span class = "navbar-toggler-icon"></span>
    </button>
    <div class = "collapse navbar-collapse" id = "navbarNav">
      <ul class = "navbar-nav">
        <li class = "nav-item">
          <a class = "nav-link active" aria-current = "page" href = "#">Home</a>
        </li>
        <li class = "nav-item">
          <a class = "nav-link" href = "#">Features</a>
        </li>
        <li class = "nav-item">
          <a class = "nav-link" href = "#">Pricing</a>
        </li>
        <li class = "nav-item">
          <a class = "nav-link disabled" aria-disabled = "true">Disabled</a>
        </li>
      </ul>
    </div>
  </div>
</nav>

@RockSora Glade, это помогло вам, примите мой ответ как ответ, чтобы он помог другим людям с похожей проблемой.

Meet 31.07.2024 10:54

Другие вопросы по теме