Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Скролл к активному li в мобильном меню (https://javascript.ru/forum/dom-window/81117-skroll-k-aktivnomu-li-v-mobilnom-menyu.html)

coder0x7b 03.10.2020 09:27

Скролл к активному li в мобильном меню
 
Всех приветствую. В JS я новичок и появилась задача, которая мне пока не по силам. Есть сайт berni.com.ua/, на этом сайте в мобильном меню при открытии категории раскрытый li стягивается вверх, хочу реализовать такое же на своём сайте - letsshop.com.ua
Написал простенький скрипт, который по моему мнению должен был работать, и да, в консоли браузера он отрабатывает почти как надо, но на сервере нет
document.querySelector('.collapse .show ul li').scrollIntoView({
  block: "start",
  behavior: 'smooth' 
});


Прошу помощи, Уважаемые знатоки. Заранее спасибо!

voraa 03.10.2020 10:32

HTML надо посмотреть.
И скрипты.
В какой момент вызывается этот код?

coder0x7b 03.10.2020 11:03

voraa,
я для этого указал сайт (для просмотра DOM). Переписал немного код
теперь он выглядит так:
$(document).on('click', '.menu-mobile_list li', function () {
        document.querySelector('.collapse.show ul li').scrollIntoView({
          block: "start",
          behavior: 'smooth' 
        });
    });
    console.log();


Но работает через раз, либо не так. Мне нужно чтоб при нажатии на li a скроллило до того, пока не будет видно полный открытый список нажатого li

coder0x7b 03.10.2020 12:20

Знатоки JS, дайте пожалуйста направление

coder0x7b 03.10.2020 15:24

В итоге не дождался помощи, пришлось долго гуглить. Решение получилось таковым:
$(document).on('click', '.menu-mobile_list li', function (event) {
  event.target.scrollIntoView({
    block: "start",
    behavior: 'smooth' 
  });
});
console.log();


Работает как мне надо -- https://jsfiddle.net/L2xpm8w5/2/ Всем спасибо)


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