decrease mouse handlers count and every-time class checking during mousemove

This commit is contained in:
Alexandr Subbotin 2014-10-22 15:40:12 +04:00 committed by Hyunje Alex Jun
parent 3821413589
commit 05b20f45ef

View File

@ -250,32 +250,30 @@
var currentLeft; var currentLeft;
var currentPageX; var currentPageX;
var inScrolling = false; var mouseMoveHandler = function (e) {
updateScrollLeft(currentLeft, e.pageX - currentPageX);
updateGeometry();
e.stopPropagation();
e.preventDefault();
};
var mouseUpHandler = function (e) {
$scrollbarXRail.removeClass('in-scrolling');
$(ownerDocument).unbind(eventClass('mousemove'), mouseMoveHandler);
};
$scrollbarX.bind(eventClass('mousedown'), function (e) { $scrollbarX.bind(eventClass('mousedown'), function (e) {
currentPageX = e.pageX; currentPageX = e.pageX;
currentLeft = $scrollbarX.position().left; currentLeft = $scrollbarX.position().left;
$scrollbarXRail.addClass('in-scrolling'); $scrollbarXRail.addClass('in-scrolling');
inScrolling = true;
$(ownerDocument).bind(eventClass('mousemove'), mouseMoveHandler);
$(ownerDocument).one(eventClass('mouseup'), mouseUpHandler);
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
}); });
$(ownerDocument).bind(eventClass('mousemove'), function (e) {
if (inScrolling) {
updateScrollLeft(currentLeft, e.pageX - currentPageX);
updateGeometry();
e.stopPropagation();
e.preventDefault();
}
});
$(ownerDocument).bind(eventClass('mouseup'), function (e) {
if (inScrolling) {
inScrolling = false;
$scrollbarXRail.removeClass('in-scrolling');
}
});
currentLeft = currentLeft =
currentPageX = null; currentPageX = null;
} }
@ -284,32 +282,30 @@
var currentTop; var currentTop;
var currentPageY; var currentPageY;
var inScrolling = false; var mouseMoveHandler = function (e) {
updateScrollTop(currentTop, e.pageY - currentPageY);
updateGeometry();
e.stopPropagation();
e.preventDefault();
};
var mouseUpHandler = function (e) {
$scrollbarYRail.removeClass('in-scrolling');
$(ownerDocument).unbind(eventClass('mousemove'), mouseMoveHandler);
};
$scrollbarY.bind(eventClass('mousedown'), function (e) { $scrollbarY.bind(eventClass('mousedown'), function (e) {
currentPageY = e.pageY; currentPageY = e.pageY;
currentTop = $scrollbarY.position().top; currentTop = $scrollbarY.position().top;
inScrolling = true;
$scrollbarYRail.addClass('in-scrolling'); $scrollbarYRail.addClass('in-scrolling');
$(ownerDocument).bind(eventClass('mousemove'), mouseMoveHandler);
$(ownerDocument).one(eventClass('mouseup'), mouseUpHandler);
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
}); });
$(ownerDocument).bind(eventClass('mousemove'), function (e) {
if (inScrolling) {
updateScrollTop(currentTop, e.pageY - currentPageY);
updateGeometry();
e.stopPropagation();
e.preventDefault();
}
});
$(ownerDocument).bind(eventClass('mouseup'), function (e) {
if (inScrolling) {
inScrolling = false;
$scrollbarYRail.removeClass('in-scrolling');
}
});
currentTop = currentTop =
currentPageY = null; currentPageY = null;
} }