Сообщение от Matre
|
клик на скролле нельзя зафиксировать некак
разве что событие onscroll если пользователь прокручивает скрол
так же можно использовать такие плагины как jscrollpane если есть вомзожнгость,на них можно поймать mousedown/mouseup
|
в общем, свою проблему я решил. способ определить момент клика на скролбар есть. Решается элегантно, хотя и похоже на костыль
))
суть решения такова: у нас всегда есть возможность в динамике определить - появились скролы или нет - это мы можем узнать по разнице таких переменных как offsetHeight и clientHeight (по высоте) и
offsetWidth и clientWidth (по ширине). По сути разница будет равняться ширине полоски скрола. То есть даже если вы через стили измените ширину этих полосок - то метод сработает. Далее мы из события берем координаты мышки и узнаем находится ли она над скролом или нет.
В моем случае этого хватило. Я узнаю где мышка и если она над скролом, то я игнорирую событие... то есть теперь мне вообще не нужно ждать mouseup, ведь я знаю что его не будет
Код примера на JQuery такой:
$('#test').mousedown(function() {
var rightscroll = this.offsetWidth-this.clientWidth;
var bottomscroll = this.offsetHeight-this.clientHeight;
var mouseX = event.pageX;
var mouseY = event.pageY;
if (rightscroll > 0
&& (mouseX >= this.clientWidth && mouseX <= this.offsetWidth)) {
return true;//if mousedown on right scroll bar
}
if (bottomscroll > 0
&& (mouseY >= this.clientHeight && mouseY <= this.offsetHeight)) {
return true;//if mousedown on bottom scroll bar
}
console.log('MouseDown Fired!');
$(this).mouseup(function() {
console.log('MouseUp Fired!');
});
});