Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 29.12.2015, 00:07
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

SnezhanaLast, ну элементам <ul>, которые под-меню, надо добавить данные классы!
Ответить с цитированием
  #22 (permalink)  
Старый 29.12.2015, 11:01
Аспирант
Отправить личное сообщение для SnezhanaLast Посмотреть профиль Найти все сообщения от SnezhanaLast
 
Регистрация: 18.12.2015
Сообщений: 31

Decode,
Добавила вручную в HTML, сабменю все равно видно, а стоит убрать мешающий класс display: inline-block, так оно попросту не открывается.
Ответить с цитированием
  #23 (permalink)  
Старый 29.12.2015, 17:18
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

SnezhanaLast, уберите из CSS:
.page-sidebar-menu.page-sidebar-menu-active-submenu li > .sub-menu {
    display: inline-block !important;
 }


Вот так должно работать:
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title></title>
    <style>
        .submenu-hide {
            display: none;
        }
    </style>
</head>
<body>
    <ul class="page-sidebar-menu">
        <li class="sidebar-menu-item">
            <a href="#">One</a>
            <ul class="sub-menu submenu-hide">
                <li>1</li>
                <li>2</li>
                <li>3</li>
            </ul>
        </li>
        <li class="sidebar-menu-item">
            <a href="#">Two</a>
            <ul class="sub-menu submenu-hide">
                <li>1</li>
                <li>2</li>
                <li>3</li>
            </ul>
        </li>
        <li class="sidebar-menu-item">
            <a href="#">Three</a>
            <ul class="sub-menu submenu-hide">
                <li>1</li>
                <li>2</li>
                <li>3</li>
            </ul>
        </li>
    </ul>

    <script>
        var menu = document.querySelector('.page-sidebar-menu'),
            subMenu = document.querySelectorAll('.sub-menu'), current;

        menu.onclick = function(e) {
            var target = e.target;

            while(target != this) {
                if ( target.classList.contains('sub-menu') ) break;

                if ( target.classList.contains('sidebar-menu-item') ) {
                    current = target.querySelector('.sub-menu');

                    [].forEach.call(subMenu, function(item) {
                        if (item == current) return;
                        item.classList.add('submenu-hide');
                    });

                    current.classList.toggle('submenu-hide');
                    
                    break;
                }

                target = target.parentNode;
            }

            return false;
        };

        menu.onmousedown = menu.onselectstart = function() {
            return false;
        };
    </script>
</body>
</html>

И да, добавьте еще класс элементам sidebar-menu-item <li>, которые являются основными пунктами меню.
Ответить с цитированием
  #24 (permalink)  
Старый 29.12.2015, 22:07
Аспирант
Отправить личное сообщение для SnezhanaLast Посмотреть профиль Найти все сообщения от SnezhanaLast
 
Регистрация: 18.12.2015
Сообщений: 31

Decode,
Удалила, изменила, класс добавила, толку ноль. Скрипт не работает, может конфликтует? Вижу, что по идее работает. Стрелки еще неверно отображаются. Не судьба мне видимо верстку на логику натянуть...
Ответить с цитированием
  #25 (permalink)  
Старый 30.12.2015, 01:08
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

SnezhanaLast, я сразу не посмотрел, оказывается у вас там 2 элемента с классом page-sidebar-menu.

В скрипте измените первую строку на:
var menu = document.querySelectorAll('.page-sidebar-menu')[1]
Ответить с цитированием
  #26 (permalink)  
Старый 01.01.2016, 18:45
Аспирант
Отправить личное сообщение для SnezhanaLast Посмотреть профиль Найти все сообщения от SnezhanaLast
 
Регистрация: 18.12.2015
Сообщений: 31

Decode,
С наступившим новым годом Вас!
Изменила, все осталось по прежнему.
Ответить с цитированием
  #27 (permalink)  
Старый 02.01.2016, 12:30
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

SnezhanaLast, спасибо, Вас тоже с Новым годом!

В консоли ошибка, надо запятую поставить после этой строки:
var menu = document.querySelectorAll('.page-sidebar-menu')[1]
Ответить с цитированием
  #28 (permalink)  
Старый 02.01.2016, 17:26
Аспирант
Отправить личное сообщение для SnezhanaLast Посмотреть профиль Найти все сообщения от SnezhanaLast
 
Регистрация: 18.12.2015
Сообщений: 31

Decode,
Поставила, все так же.(
Ответить с цитированием
  #29 (permalink)  
Старый 03.01.2016, 00:04
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

SnezhanaLast, вам надо со стилями разобраться. Если убрать эти два селектора, то работает.

.page-sidebar-menu.page-sidebar-menu-active-submenu li .sub-menu {
    display: none;
    width: 194px;
    z-index: 2000;
    position: absolute;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    -ms-border-radius: 4px;
    -o-border-radius: 4px;
    border-radius: 4px;
 }

.page-sidebar .page-sidebar-menu .sub-menu,
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu {
  list-style: none;
  display: none;
  padding: 0;
  margin: 8px 0 8px 0;
}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Всплывающее окно при отправке формы veg Общие вопросы Javascript 10 20.01.2017 10:44
при клике по ссылке проголосовать всплывает окно с формой koyot777 Events/DOM/Window 1 26.06.2015 05:27
Скрипт появляющихся элементов при скроллинге на html5 не работает - прошу помочь wladm Библиотеки/Тулкиты/Фреймворки 5 15.02.2015 11:00
Изменение прозрачности при клике AJIUK jQuery 8 09.03.2014 16:00
Изменение размера элемента при клике Derekovich Элементы интерфейса 25 05.12.2013 20:45