-
Notifications
You must be signed in to change notification settings - Fork 237
Активация горизонтального скролла #7
Comments
Насколько я понял, необходимо, чтобы при скролле мышью контейнер прокручивался по горизонтали, а не по вертикали, так? Если так, то это немного расходится с логикой работы скроллбара, т.к. его основная часть - сохранить родной функционал прокрутки браузера (не только мышью, но и любыми другими средствами - тач, клавиатура, трекпад и прочее). Лушим решением будет "ручная" обработка колёсика мыши для прокрутки содержимого вне плагина. Т.к. скроллбар навешивается на событие "scroll", то проблем с этим не должно быть. Вторым решением будет создание собственного элемента скроллбара и использовании опции scrollx - туда подаётся jQuery массив с обеими элементами - и сам контейнер, и DOM элемент скроллбара; при этом придётся закомментировать строку с проверкой направления скролла (что не есть гут, т.к. плагин обновляется и Вам придётся переносить изменения из старой версии в новую вручную). |
Спасибо. |
Причина в том, что если указать scrollx/scrolly, то скроллбар не создаётся, а пытается использовать тот элемент, который был указан. Таким образом, к примеру, можно укзать в качестве скроллбара элемент, находящийся вне блока (внешний скроллбар). Если есть желание использовать второй способ (чего я не рекомендую), то нужно создать вручную элемент скроллбара, и для scrollx указать этот элемент + сам контейнер (jQuery позволяет это сделать с помощью команды add). В результате события отлавливания скролла мыши будут обрабатываться как на скроллбаре, так и на контейнере. Вместо этого рекомендую написать отдельный обработчик, который бы отлавливал скролл мыши и изменял горизонтальную прокрутку контейнера. |
Последую Вашему последнему совету. |
Пример отдельного обработчика тут: http://jsfiddle.net/AZ6CZ/ |
спасибо! |
Здравствуйте!
Использую Ваш скролл. Все отлично, за исключением горизонтального скроллбара.
Прочел статью http://habrahabr.ru/post/177399, в которой из комментов узнал, и после, закомментировал следующее условие:
if(!scrollx.isVisible || (d == 'x' && isVerticalScroll(event))){
return true;
}
Работает только при наведении мыши на 'трэк' скроллбара.
Также пробовал задать опцию { 'scrollx':html_element }, теперь скроллится при наведении на весь блок-врапер, но нет самого скроллбара.
Возможно ли активировать прокрутку на весь блок-врапер без скрывания скроллбара?
ПС: Я понимаю, что весь функционал максимально приближен к нативному, но именно в этом аспекте хотелось бы меньшей нативности:)
The text was updated successfully, but these errors were encountered: