Как сделать выезжающую панель справа наподобие off-canvas меню?

Здравствуйте, в жейквери я совсем чайник, сейчас имеем панельку с css значением right равным -300, то есть минус ширину панельки.

При клике на элемент нужно, чтобы значение right у панельки стало равным нулю, а если кликнуть на этот же элемент еще раз, то опять -300px. Пробовал разными способами, сначала при клике делал right=0 и менял класс элемента на который нужно было кликать, но проблема в том, что потом жейквери не ловит этот класс вообще.

С анимацией
  • Вопрос задан
  • 6152 просмотра
Пригласить эксперта
Ответы на вопрос 3
Можно попробовать что-то похожее на это

.active-panel { right: -300px; }
.inactive-panel { right: 0px; }

$(".element").on('click', function() {
  if ($(this).hasClass("active-panel")) {
      $(this).removeClass("active-panel");
      $(this).addClass("inactive-panel");
    } else {
      $(this).addClass("active-panel");
      $(this).removeClass("inactive-panel");
    }
});
Ответ написан
metamorph
@metamorph
Возьмите плагин и не парьте себе мозг.
https://github.com/adchsm/Slidebars
Ответ написан
На нужный элемент ставим событие onclick="OpenMenu()"

function OpenMenu()
        {     
                       
            if ($('#left_menu').css("marginLeft") == '0px') {
             $('#left_menu').animate({
                   marginLeft: "-300px"
                }, 100
             );
          } else {
            $('#left_menu').animate({
                   marginLeft: "0px"
               }, 100
            );
            }          
        }


Как то так, при клике проверяем margin панели, если он -300 то ставим 0, если на оборот то 300.

Это если на JQUERY анимация, можно на show и hide с добавление анимации в css с помощью transition
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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