Skip to content

Commit

Permalink
Merge pull request #366 from dorilla/feature/stop-propagation-on-click
Browse files Browse the repository at this point in the history
Allow the clicking of a rail to propagate
  • Loading branch information
Jun committed Jul 24, 2015
2 parents 6c642d8 + 79f4cfc commit 89f4226
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 3 deletions.
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
3 changes: 2 additions & 1 deletion src/js/plugin/default-setting.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,6 @@ module.exports = {
suppressScrollX: false,
suppressScrollY: false,
scrollXMarginOffset: 0,
scrollYMarginOffset: 0
scrollYMarginOffset: 0,
stopPropagationOnClick: true
};
8 changes: 6 additions & 2 deletions src/js/plugin/handler/click-rail.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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);
Expand Down

0 comments on commit 89f4226

Please sign in to comment.