Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Всплывающее окно при клике! Прошу помочь! (https://javascript.ru/forum/dom-window/60247-vsplyvayushhee-okno-pri-klike-proshu-pomoch.html)

SnezhanaLast 27.12.2015 00:25

Decode,
Структура:
<div>
      <ul>
         <li>


Новые стили и html меню я и сама написать могу. Дело тут в том, чтобы сохранить имеющееся ("прилипающую стрелку", стиль). Если в CSS hover эффект поменять на active, меню открывается по клику, но тут же секунду в секунду скрывается => дело в JS.

Decode 27.12.2015 01:15

SnezhanaLast, для начала html измените.



Цитата:

Сообщение от SnezhanaLast
Если в CSS hover эффект поменять на active, меню открывается по клику, но тут же секунду в секунду скрывается => дело в JS.

Не надо active, впрочем, как и hover.

SnezhanaLast 28.12.2015 00:11

Decode,
Обновила, посмотрите, с такой проблемой столкнулась.

Decode 28.12.2015 02:52

SnezhanaLast, уберите :active. В таблицу стилей добавьте класс submenu-hide, который будет скрывать под-меню. Вставьте скрипт к себе:
var menu = document.querySelector('.page-sidebar-menu'),
    subMenu = document.querySelectorAll('.sub-menu'), current;

menu.onclick = function(e) {
  if ( !e.target.parentNode != this ) return;

  current = e.target.querySelector('.sub-menu');

  [].forEach.call(subMenu, function(item) {
    if (item == current) return;

    item.classList.add('submenu-hide');
  });

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

menu.onmousedown = menu.onselectstart = function() {
  return false;
};

SnezhanaLast 28.12.2015 10:55

Спасибо Вам большое! Выручили :)

SnezhanaLast 28.12.2015 12:50

Ой. Сделала, а белиберда получилась. :(
В чем косяк?

Decode 28.12.2015 15:35

SnezhanaLast,
Цитата:

Сообщение от Decode
В таблицу стилей добавьте класс submenu-hide, который будет скрывать под-меню.


SnezhanaLast 28.12.2015 15:54

Я добавила.
.submenu-hide {
  display: none;
}

Decode 28.12.2015 16:02

SnezhanaLast, этого мало, надо еще элементам <ul> добавить, которые submenu.
<ul class="sub-menu submenu-hide">

SnezhanaLast 28.12.2015 17:28

Decode,
.submenu-hide {
  display: none;
}
.sub-menu .submenu-hide {
  display: none;
}
.sub-menu .submenu-hide ul {
  display: none;
}


Сделала вот так, но результат тот же самый. :(


Часовой пояс GMT +3, время: 16:46.