|
|
|
@ -1,6 +1,5 @@
|
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
|
|
var _ = require('../../lib/helper');
|
|
|
|
|
var instances = require('../instances');
|
|
|
|
|
var updateGeometry = require('../update-geometry');
|
|
|
|
|
var updateScroll = require('../update-scroll');
|
|
|
|
@ -13,18 +12,10 @@ function bindClickRailHandler(element, i) {
|
|
|
|
|
|
|
|
|
|
i.event.bind(i.scrollbarY, 'click', stopPropagation);
|
|
|
|
|
i.event.bind(i.scrollbarYRail, 'click', function (e) {
|
|
|
|
|
var halfOfScrollbarLength = _.toInt(i.scrollbarYHeight / 2);
|
|
|
|
|
var positionTop = i.railYRatio * (e.pageY - window.pageYOffset - pageOffset(i.scrollbarYRail).top - halfOfScrollbarLength);
|
|
|
|
|
var maxPositionTop = i.railYRatio * (i.railYHeight - i.scrollbarYHeight);
|
|
|
|
|
var positionRatio = positionTop / maxPositionTop;
|
|
|
|
|
|
|
|
|
|
if (positionRatio < 0) {
|
|
|
|
|
positionRatio = 0;
|
|
|
|
|
} else if (positionRatio > 1) {
|
|
|
|
|
positionRatio = 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
updateScroll(element, 'top', (i.contentHeight - i.containerHeight) * positionRatio);
|
|
|
|
|
var positionTop = e.pageY - window.pageYOffset - pageOffset(i.scrollbarYRail).top;
|
|
|
|
|
var direction = positionTop > i.scrollbarYTop ? 1 : -1;
|
|
|
|
|
|
|
|
|
|
updateScroll(element, 'top', element.scrollTop + direction * i.containerHeight);
|
|
|
|
|
updateGeometry(element);
|
|
|
|
|
|
|
|
|
|
e.stopPropagation();
|
|
|
|
@ -32,18 +23,10 @@ function bindClickRailHandler(element, i) {
|
|
|
|
|
|
|
|
|
|
i.event.bind(i.scrollbarX, 'click', stopPropagation);
|
|
|
|
|
i.event.bind(i.scrollbarXRail, 'click', function (e) {
|
|
|
|
|
var halfOfScrollbarLength = _.toInt(i.scrollbarXWidth / 2);
|
|
|
|
|
var positionLeft = i.railXRatio * (e.pageX - window.pageXOffset - pageOffset(i.scrollbarXRail).left - halfOfScrollbarLength);
|
|
|
|
|
var maxPositionLeft = i.railXRatio * (i.railXWidth - i.scrollbarXWidth);
|
|
|
|
|
var positionRatio = positionLeft / maxPositionLeft;
|
|
|
|
|
|
|
|
|
|
if (positionRatio < 0) {
|
|
|
|
|
positionRatio = 0;
|
|
|
|
|
} else if (positionRatio > 1) {
|
|
|
|
|
positionRatio = 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
updateScroll(element, 'left', ((i.contentWidth - i.containerWidth) * positionRatio) - i.negativeScrollAdjustment);
|
|
|
|
|
var positionLeft = e.pageX - window.pageXOffset - pageOffset(i.scrollbarXRail).left;
|
|
|
|
|
var direction = positionLeft > i.scrollbarXLeft ? 1 : -1;
|
|
|
|
|
|
|
|
|
|
updateScroll(element, 'left', element.scrollLeft + direction * i.containerWidth);
|
|
|
|
|
updateGeometry(element);
|
|
|
|
|
|
|
|
|
|
e.stopPropagation();
|
|
|
|
|