Для <html dir="rtl">
некоторые браузеры (Safari, Edge, IE) будут автоматически перемещать полосу прокрутки влево, что является правильным поведением:
К сожалению, основные браузеры (Chrome и Firefox) ведут себя по-другому, полоса прокрутки по-прежнему находится в правой части браузера.
Можно ли программно определить (желательно с ванильным JS), с какой стороны находится полоса прокрутки?
UPD (28.09.2018): до сих пор в ответах нет рабочего решения, люди пытаются определить позицию полосы прокрутки, используя getBoundingClientRect().left
.offsetLeft
или .offsetLeft
и это не сработает, потому что оно всегда будет 0
по крайней мере в Край независимо от положения полосы прокрутки.
UPD (15.10.2018): TL;DR: нет способа.
Кажется, что браузеры не предоставляют API для обнаружения полосы прокрутки. В нижеприведенных ответах есть трюки с вставкой фиктивного div
и вычисление, где находится полоса прокрутки в этом div. Я не могу рассматривать эти трюки как ответ, потому что панель прокрутки документа может располагаться несколькими способами (<html dir="rtl">
, RTL-версия ОС, настройки браузера и т.д.).