@Lil0

Как выполнить функцию js при нажатии на кнопку/ссылку?

Добрый день.

Делаю выдвигающееся меню с анимацией на css. Функция js меняет стиль блока, показывает его. Хочу чтобы при клике на кнопку/ссылку меню открывалось (выполнялась функция) и после второго клика закрывалось, тоже с изменением стилей.
Пока только блок при нажатии на ссылку мигает - появляется и исчезает. Нужно, я так понимаю, что-то из html. Обратную анимацию добавлю. Направьте меня, пожалуйста, в нужное русло.

С js только начинаю знакомиться, поэтому гуглится трудновато.

Код
<body>
   
   <a onclick="openMenu()" href=""> Меню</a>
    <div id='menu' class="menu slide-in-left">
        <nav>
                <a href="">menu 1</a>
               <a href="">menu 2</a>
        </nav>
    </div> 
  <script src="script.js"></script>  
</body>


function openMenu() {
    let menu = document.getElementById('menu');
    menu.style.display = 'block';
}


.menu {
    display: flex;
    width: 200px;
    height: 500px;
    border: solid red;
}

#menu {
    display: none;
}
.slide-in-left {
	-webkit-animation: slide-in-left 1.2s cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.1s ;
	        animation: slide-in-left 1.2s cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.1s ;
}

@-webkit-keyframes slide-in-left {
  0% {
    -webkit-transform: translateX(-1000px);
            transform: translateX(-1000px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
}
@keyframes slide-in-left {
  0% {
    -webkit-transform: translateX(-1000px);
            transform: translateX(-1000px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
}
  • Вопрос задан
  • 7499 просмотров
Решения вопроса 1
Wolfnsex
@Wolfnsex Куратор тега HTML
Если не хочешь быть первым - не вставай в очередь!
Мигает он у Вас по тому, что перезагружается страница, а перезагружается она так как у ссылки есть атрибут "href", при href="" - ссылка ведет на ту же страницу, на которой браузер находится сейчас.

Анимация там пожалуй вообще не нужна, достаточно "transition", выглядеть будет примерно так:


P.S. Идея я думаю Вам понятна, дальше её можно развить самостоятельно :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
28m28misha10
@28m28misha10
Люблю кодить
Атрибут onclick="//а тут js код" у кнопки/ссылки
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы