@TitNIk

Как сделать плавную анимацию для меню JS?

Доброго дня. Есть JS код, который при нажатии открывает меню, и при повторном нажатии на кнопку закрывает его.
function openbox(id){
    display = document.getElementById(id).style.display;

    if(display=='none'){
       document.getElementById(id).style.display='block';
    }else{
       document.getElementById(id).style.display='none';
    }
}


Сам скрипт. Вопрос. Как сделать так, чтобы скрипт не запрашивал стиль меню, а сразу открывал его? Зная, что блок с меню уже скрыт. Делаю меню для мобильной версии сайта и оно открывается только при двойном клике. Как я понимаю, первый клик запрашивает стиль, а затем уже принимает решение, что делать.

И еще момент. Как можно сделать плавное открытие меню и изменение иконки (бэкграунда) кнопки меню, при нажатии на которую открывается само меню.

Заранее спасибо!
  • Вопрос задан
  • 2868 просмотров
Пригласить эксперта
Ответы на вопрос 3
Возьмите за правило, писать сразу весь пример на jsfiddle.net или ему подобных ресурсах.
Вот код на чистом js, анимация css3
с анимацией на js быстрее сделать на jQuery
Ответ написан
Комментировать
@drtvader
Вечный студент
Делал так, добавлял класс, которые показывал.
К примеру изначально, position: absolut; right/left: -100%; Когда добавлял active, то right/left: 0;
и transition.
Попробую поискать в готовых у себя.
Ответ написан
Комментировать
@Fillark
Я тут ковыряюсь в css и нашёл один lifehack, в общем ты можешь все сделать на css
https://developer.mozilla.org/ru/docs/Web/CSS/:checked
В двух словах создаёшь невидимый чекбокс и на его состояние вешаешь отображение элемента)
Такой подход безумен, но зато без js стопроцентный css))
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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