Ответы пользователя по тегу JavaScript
  • Нужно чтобы при нажатии менюшки dropdown меню, область контента сдвигалась вниз. Написал простой скрипт, но его работа не поддаётся моей логике!?

    Vilz
    @Vilz
    html, css, js
    слушать клик по всему дому на протяжении работы всей страницы? классное решение. по-хорошему при открытии меню надо биндить клик на "не меню", а при закрытии бинд этот удалять. да и со стилями тоже не самая лучшая практика. правильнее будет всё таки контролировать это из цсски, классами типа 'active' родителя и по наличию этого класса уже играться со стилями. ах да, на счет хаотичности. '*' это все элементы. включая родителей того по кому ты кликнул. кликаются ВСЕ СРАЗУ. поэтому - если в дереве четное количество родителей - то срабатывает, если не четное - то нет.
    Я использую что-то такое
    $(".sidebar-toggle").on('click', function(){ // клик по кноке открытия
        var h = $("aside.sidebar") //блок который должен открываться
        if($(this).is('.active')) { // если кликнутое меню уже открыто - закрываем
          $(this).removeClass("active"); //удаляем подсвечивание открытого меню
          h.removeClass("active"); //закрываем
          $(document).unbind('.closeMobileMenu'); // удаляем бинд закрытия меню
        } else {
          $(this).addClass("active"); //подсвечиваем открытое
          h.addClass("active"); //открываем
          $(document).bind('touchend.closeMobileMenu click.closeMobileMenu', function(e) { //событие клик по документу
            if (!h.is(e.target) && $(e.target).closest(h).length === 0 && !$(".sidebar-toggle").is(e.target)) { //если это не тот блок, что показывается
              $(".sidebar-toggle").click(); //кликаем второй раз что бы закрылось (тут вообще должно быть полноценное закрытие а не второй клик)
            }
          });
        }
        return false;
      });
    Ответ написан
    Комментировать
  • Как лучше реализовать такую круговую навигацию?

    Vilz
    @Vilz
    html, css, js
    все забывают про карты img map эх...
    htmlbook.ru/content/karty-izobrazheniya
    Ответ написан
    Комментировать