Merge pull request #366 from dorilla/feature/stop-propagation-on-click
Allow the clicking of a rail to propagate
This commit is contained in:
commit
89f4226778
@ -308,6 +308,11 @@ The number of pixels the content width can surpass the container width without e
|
|||||||
The number of pixels the content height can surpass the container height without enabling the Y axis scroll bar. Allows some "wiggle room" or "offset break", so that Y axis scroll bar is not enabled just because of a few pixels.
|
The number of pixels the content height can surpass the container height without enabling the Y axis scroll bar. Allows some "wiggle room" or "offset break", so that Y axis scroll bar is not enabled just because of a few pixels.
|
||||||
**Default: 0**
|
**Default: 0**
|
||||||
|
|
||||||
|
### stopPropagationOnClick
|
||||||
|
When set to false, when clicking on a rail, the click event will be allowed to propagate.
|
||||||
|
|
||||||
|
**Default: true**
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
|
|
||||||
#### Please read [Contributing](https://github.com/noraesae/perfect-scrollbar/wiki/Contributing) in the wiki before making any contribution.
|
#### Please read [Contributing](https://github.com/noraesae/perfect-scrollbar/wiki/Contributing) in the wiki before making any contribution.
|
||||||
|
@ -14,5 +14,6 @@ module.exports = {
|
|||||||
suppressScrollX: false,
|
suppressScrollX: false,
|
||||||
suppressScrollY: false,
|
suppressScrollY: false,
|
||||||
scrollXMarginOffset: 0,
|
scrollXMarginOffset: 0,
|
||||||
scrollYMarginOffset: 0
|
scrollYMarginOffset: 0,
|
||||||
|
stopPropagationOnClick: true
|
||||||
};
|
};
|
||||||
|
@ -13,7 +13,9 @@ function bindClickRailHandler(element, i) {
|
|||||||
}
|
}
|
||||||
var stopPropagation = window.Event.prototype.stopPropagation.bind;
|
var stopPropagation = window.Event.prototype.stopPropagation.bind;
|
||||||
|
|
||||||
|
if (i.settings.stopPropagationOnClick) {
|
||||||
i.event.bind(i.scrollbarY, 'click', stopPropagation);
|
i.event.bind(i.scrollbarY, 'click', stopPropagation);
|
||||||
|
}
|
||||||
i.event.bind(i.scrollbarYRail, 'click', function (e) {
|
i.event.bind(i.scrollbarYRail, 'click', function (e) {
|
||||||
var halfOfScrollbarLength = h.toInt(i.scrollbarYHeight / 2);
|
var halfOfScrollbarLength = h.toInt(i.scrollbarYHeight / 2);
|
||||||
var positionTop = i.railYRatio * (e.pageY - window.scrollY - pageOffset(i.scrollbarYRail).top - halfOfScrollbarLength);
|
var positionTop = i.railYRatio * (e.pageY - window.scrollY - pageOffset(i.scrollbarYRail).top - halfOfScrollbarLength);
|
||||||
@ -32,7 +34,9 @@ function bindClickRailHandler(element, i) {
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (i.settings.stopPropagationOnClick) {
|
||||||
i.event.bind(i.scrollbarX, 'click', stopPropagation);
|
i.event.bind(i.scrollbarX, 'click', stopPropagation);
|
||||||
|
}
|
||||||
i.event.bind(i.scrollbarXRail, 'click', function (e) {
|
i.event.bind(i.scrollbarXRail, 'click', function (e) {
|
||||||
var halfOfScrollbarLength = h.toInt(i.scrollbarXWidth / 2);
|
var halfOfScrollbarLength = h.toInt(i.scrollbarXWidth / 2);
|
||||||
var positionLeft = i.railXRatio * (e.pageX - window.scrollX - pageOffset(i.scrollbarXRail).left - halfOfScrollbarLength);
|
var positionLeft = i.railXRatio * (e.pageX - window.scrollX - pageOffset(i.scrollbarXRail).left - halfOfScrollbarLength);
|
||||||
|
Loading…
Reference in New Issue
Block a user