Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.04.2018, 13:17
Новичок на форуме
Отправить личное сообщение для olegmadeofrusiansever Посмотреть профиль Найти все сообщения от olegmadeofrusiansever
 
Регистрация: 02.04.2018
Сообщений: 4

SOS, мучаюсь уже 3 день, как добавить класс к body, при появлении меню!!
Нужно это все дело для того, чтобы запретить прокрутку. Дальше этот класс при появлении сделать overflow: hidden в css.

$(".toggle_mnu").click(function() {
if ($(".top_mnu").is(":visible")) {
$("body").removeClass("noscroll");
}
else {
$("body").addClass("noscroll");
};
});

В html это выглядит так:

<button class="toggle_mnu">
<span class="sandwich">
<span class="sw-topper"></span>
<span class="sw-bottom"></span>
<div class="sw-footer">
</span>
</span>
</button>
<nav class="top_mnu">
<ul>
<li><a href="#">Пункт 1</a></li>
<li><a href="#">Пункт 2</a></li>
<li><a href="#">Пункт 3</a></li>
<li><a href="#">Пункт 4</a></li>
<li><a href="#">Пункт 5</a></li>
<li><a href="#">Пункт 6</a></li>
</ul>
</nav>

css
body.noscroll {
overflow: hidden; }

При данном варианте, сначала вроде работает, начинаю но после кликов по <li> начинает глючить, т.е класс .noscroll появляется когда меню не видно и запрет скрола появляется на сайт! Помогите сделать чтобы это работало..

Сайт пилю на коленке в свободное время для работы , я не профессиональный веб-программист. Поэтому извините за нубский вопрос, реально уже третий день ищу инфу как это реализовать .. пробовал и .addClass и toggleClass, но знаний не хватает.

Последний раз редактировалось olegmadeofrusiansever, 02.04.2018 в 13:22. Причина: ошибка
Ответить с цитированием
  #2 (permalink)  
Старый 02.04.2018, 19:22
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А кнопка "toggle_mnu" только и занимается классом body или же и меню тоже?

А если управляет и меню, то $("body").toggleClass("noscroll"). Это же переключатель, вы включая/выключая свет дома не задаетесь же вопросом идет или нет ток по проводам.
Ответить с цитированием
  #3 (permalink)  
Старый 02.04.2018, 21:47
Новичок на форуме
Отправить личное сообщение для olegmadeofrusiansever Посмотреть профиль Найти все сообщения от olegmadeofrusiansever
 
Регистрация: 02.04.2018
Сообщений: 4

Сообщение от laimas Посмотреть сообщение
А кнопка "toggle_mnu" только и занимается классом body или же и меню тоже?
Она в основном только меню и занимается)) Мне нужно, чтобы при открытии .top_mnu, которое открывается по клику кнопки "toggle_mnu", всегда добавлялся класс к body, и соответственно удалялся при закрытии этого меню. Главная цель всего этого "действия" - запретить скролинг сайта, пока открыто меню (.top_mnu)
Ответить с цитированием
  #4 (permalink)  
Старый 03.04.2018, 03:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от olegmadeofrusiansever
Мне нужно, чтобы при открытии .top_mnu, которое открывается по клику кнопки "toggle_mnu", всегда добавлялся класс к body
А я о чем? $("body").toggleClass("noscroll") это и будет делать. А что касается щелчков по пунктам меню, то если это не переход по новому адресу, то добавить LI в обработчик.
Ответить с цитированием
  #5 (permalink)  
Старый 04.04.2018, 12:10
Новичок на форуме
Отправить личное сообщение для olegmadeofrusiansever Посмотреть профиль Найти все сообщения от olegmadeofrusiansever
 
Регистрация: 02.04.2018
Сообщений: 4

Сообщение от laimas Посмотреть сообщение
А я о чем? $("body").toggleClass("noscroll") это и будет делать. А что касается щелчков по пунктам меню, то если это не переход по новому адресу, то добавить LI в обработчик.
Спасибо, попробую
Ответить с цитированием
  #6 (permalink)  
Старый 05.04.2018, 11:52
Новичок на форуме
Отправить личное сообщение для olegmadeofrusiansever Посмотреть профиль Найти все сообщения от olegmadeofrusiansever
 
Регистрация: 02.04.2018
Сообщений: 4

Сообщение от laimas Посмотреть сообщение
А я о чем? $("body").toggleClass("noscroll") это и будет делать. А что касается щелчков по пунктам меню, то если это не переход по новому адресу, то добавить LI в обработчик.
Спасибо, помогли
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить к body класс при открытии модального окна maxg5 jQuery 8 20.02.2018 19:55
Как реализовать задержку при наведении в меню? Stas-ik Элементы интерфейса 14 20.02.2014 12:21
Как добавить блок зума не переж body а в необходимый блок? ilyas-> Элементы интерфейса 0 30.07.2013 15:27
Как в общем меню для всех страниц поменять класс определенного пункта в зависимости о phenom Элементы интерфейса 2 08.04.2011 11:09
textarea. При нажатии enter, добавить bb-code [br]. Как? javasc Events/DOM/Window 1 22.01.2011 09:43