#jquery #webkit #scrollbar
#jquery #webkit #полоса прокрутки
Вопрос:
Я использую ::-webkit-селектор полосы прокрутки, для которого требуется следующий css в теге body:
body { position:absolute; top:0; left:10px; bottom:0; right:10px; overflow-y:scroll; overflow-x:hidden; }
Мне нужно прокрутить страницу вниз, чтобы показать элемент, который находится в нижней части страницы, используя следующий jQuery:
$('.tester').click(function() { $('html, body').animate({ scrollTop: $(document).height() }, 'slow'); return false; });
Это поведение не работает из-за объявления position: absolute в теге body. Если я удалю это, поведение прокрутки вниз будет работать так, как ожидалось, но это испортит стиль webkit-scrollbar.
Кто-нибудь может придумать обходной путь?
Комментарии:
1. Похоже, вы также анимируете html-элемент. Что произойдет, если вы просто выполните $ («body»)
2. Привет. Я действительно пробовал это, просто попробовал еще раз, чтобы подтвердить — не работает.
3. можете ли вы прислать мне простой тестовый пример … paulkinlan@google.com
4. Конечно, просто объединил это на случай, если кто-то еще захочет взглянуть: ТЕСТОВЫЙ ПРИМЕР Если вы используете Chrome dev inspector и отключите position: absolute из тега body, поведение прокрутки будет работать. Кстати: возможно, вам придется уменьшить высоту окна браузера yoru, чтобы отображалась полоса прокрутки.
Ответ №1:
Что ж, после долгих поисков и игр я пришел к выводу, что это просто не сработает.
В основном это связано с тем, что приведенный выше CSS в первую очередь является взломом, чтобы заставить браузер скрывать встроенную полосу прокрутки и показывать версию в стиле webkit в теле.
Надеюсь, это будет рассмотрено командой webkit в будущем, предоставляя способы реализации этой функциональности без необходимости прибегать к использованию абсолютного позиционирования в теге body.
К сожалению, по крайней мере, на данный момент, мне пришлось отказаться от использования пользовательских полос прокрутки, поскольку для этого проекта мне нужна функциональность scrollTop.