diff --git a/README.md b/README.md index 7f049cb..d600e42 100644 --- a/README.md +++ b/README.md @@ -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. **Default: 0** +### stopPropagationOnClick +When set to false, when clicking on a rail, the click event will be allowed to propagate. + +**Default: true** + ## Contribution #### Please read [Contributing](https://github.com/noraesae/perfect-scrollbar/wiki/Contributing) in the wiki before making any contribution. diff --git a/src/js/plugin/default-setting.js b/src/js/plugin/default-setting.js index 86eaf3e..c75c0ae 100644 --- a/src/js/plugin/default-setting.js +++ b/src/js/plugin/default-setting.js @@ -14,5 +14,6 @@ module.exports = { suppressScrollX: false, suppressScrollY: false, scrollXMarginOffset: 0, - scrollYMarginOffset: 0 + scrollYMarginOffset: 0, + stopPropagationOnClick: true }; diff --git a/src/js/plugin/handler/click-rail.js b/src/js/plugin/handler/click-rail.js index 971fa72..ddb7d74 100644 --- a/src/js/plugin/handler/click-rail.js +++ b/src/js/plugin/handler/click-rail.js @@ -13,7 +13,9 @@ function bindClickRailHandler(element, i) { } var stopPropagation = window.Event.prototype.stopPropagation.bind; - i.event.bind(i.scrollbarY, 'click', stopPropagation); + if (i.settings.stopPropagationOnClick) { + i.event.bind(i.scrollbarY, 'click', stopPropagation); + } i.event.bind(i.scrollbarYRail, 'click', function (e) { var halfOfScrollbarLength = h.toInt(i.scrollbarYHeight / 2); var positionTop = i.railYRatio * (e.pageY - window.scrollY - pageOffset(i.scrollbarYRail).top - halfOfScrollbarLength); @@ -32,7 +34,9 @@ function bindClickRailHandler(element, i) { e.stopPropagation(); }); - i.event.bind(i.scrollbarX, 'click', stopPropagation); + if (i.settings.stopPropagationOnClick) { + i.event.bind(i.scrollbarX, 'click', stopPropagation); + } i.event.bind(i.scrollbarXRail, 'click', function (e) { var halfOfScrollbarLength = h.toInt(i.scrollbarXWidth / 2); var positionLeft = i.railXRatio * (e.pageX - window.scrollX - pageOffset(i.scrollbarXRail).left - halfOfScrollbarLength);