Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   возможно ли запретить скролинг при внутренней ссылке (https://javascript.ru/forum/css-html/78125-vozmozhno-li-zapretit-skroling-pri-vnutrennejj-ssylke.html)

AleksSergSB 30.07.2019 14:11

возможно ли запретить скролинг при внутренней ссылке
 
Добрый!

фабула.
Есть accordion(раздвигающаяся вертикально меню) построенный на :target. После верстки в дизайн сайта, выяснилось, что "прыжки" по внутренним id при клике не соответствуют задумке.

Убрать их нельзя, так как аккордион построен на :target.

Решил перенаправить по клике на нужный id. Но оказывается скрипт выполняется после "прыжка", как следствие на глаз мерцание экрана, так как скроллинг сначала приходит согласно html id, а уже потом его скрипт переводит на другой id.

Собственно я повешал такие обработчики на нужные ссылки
$(document).ready(function(){
          $(window).scrollTop(0);
         });
Если убрать "$(document).ready" то скролл не отрабатывается.

Возможно ли иное решение?
Есть ли возможность вообще заблокировать на этой странице изменение фокуса при переходе по внутренней ссылке?

Malleys 30.07.2019 14:45

AleksSergSB, и как, собственно говоря, всё это выглядит? Очень сложно что-то сказать без примера! (По крайней мере мне!)

AleksSergSB 30.07.2019 14:54

Цитата:

Сообщение от Malleys (Сообщение 510913)
AleksSergSB, и как, собственно говоря, всё это выглядит? Очень сложно что-то сказать без примера! (По крайней мере мне!)

Привет!
Форкнул решение которое внедряю.

https://codepen.io/Aleksandr_/pen/pMexXq

Я добавил нижний div на 1000px.
Теперь попробуйте пощелкать. Особенно последний и предпоследний раздел. Все улетает наверх.

Malleys 30.07.2019 15:00

AleksSergSB, а вам важно, чтобы в адресной строке добавлялся hash c id? Например, при нажатии на первое добавляется #vertabout. Если такую ссылку скопировать и отправить кому-то, то при открытии в браузере увидят первый раздел открытым! Это важно или можно без hash?

AleksSergSB 30.07.2019 15:12

Цитата:

Сообщение от Malleys (Сообщение 510915)
AleksSergSB, а вам важно, чтобы в адресной строке добавлялся hash c id? Например, при нажатии на первое добавляется #vertabout. Если такую ссылку скопировать и отправить кому-то, то при открытии в браузере увидят первый раздел открытым! Это важно или можно без hash?

Это не важно. Эстетика на много важней.

Malleys 30.07.2019 15:18

Цитата:

Сообщение от AleksSergSB
Это не важно. Эстетика на много важней.

Тогда можно и при помощи :focus (вместо :target), ссылки тогда не нужны, удалил. А к каждому section нужно добавить tabindex="0"

Κοιτάξτε! https://codepen.io/Malleys/pen/voxQbr?editors=1100

AleksSergSB 30.07.2019 15:34

Цитата:

Сообщение от Malleys (Сообщение 510917)
Тогда можно и при помощи :focus (вместо :target), ссылки тогда не нужны, удалил. А к каждому section нужно добавить tabindex="0"

Κοιτάξτε! https://codepen.io/Malleys/pen/voxQbr?editors=1100

Оу!! Все методами css.
Спасибо огромное! Надо бы еще почитать про псевдоселекторы.


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