2015-05-12 2 views
1

Я написал угловую директиву, называемую dragscroll, которая прокручивает горизонтальный переполняющий элемент справа или слева на основе перетаскивания на холст.Угловая директива ScrollLeft on Drag Bug

Пожалуйста, обратитесь к этому fiddle

How it works: 
1. Horizontal scroll is at 0. 
2. Mousedown at the right end of the div and while holding it 
3. Mousemove left 
4. Page scrolls right. 
5. Mouseup stops the dragging. 
And Vice versa. 

Однако есть ошибка.

This occurs when 
1. the horizontal scrollbar is in the middle of the div, 
2. you "mousedown" on any part of the canvas (pink) part and 
3. mousemove to the left edge, and hold it, 

the scroll happens continuously, which is not the desired behavior. I have not coded any scrollLeft behavior for this kind of event. Dont know why it is happening. 

Просьба помочь.

+0

Казаться как есть что-то отношение к умолчанию поведение 'прокрутки event' вне окна браузера. Вы пытаетесь добавить в 'e.preventDefault()' в свой метод 'horizontalScroll', чтобы убедиться, что он работает или нет. – themyth92

+0

Блестящий! Большое спасибо @ themyth92. Пожалуйста, напишите как ответ. Я соглашусь. Я добавил e.preventDefault() в функцию события dragStart в первой строке. Это сработало. –

+0

Добавлено как ответ. Благодаря :) – themyth92

ответ

1

Проблема возникает из-за поведения по умолчанию scrolling event за пределами браузера на обозревателя. Что вы можете сделать, это stop это поведение по умолчанию, добавив e.preventDefault() в свой метод horizontalScroll.

Working fiddle

Смежные вопросы