Skip to content

Commit

Permalink
fix wrong scrollbar position calculation when track has padding (fix #…
Browse files Browse the repository at this point in the history
  • Loading branch information
Grsmto committed Nov 2, 2018
1 parent a7d0f52 commit c9b622a
Showing 1 changed file with 3 additions and 6 deletions.
9 changes: 3 additions & 6 deletions packages/simplebar/src/simplebar.js
Original file line number Diff line number Diff line change
Expand Up @@ -430,18 +430,15 @@ export default class SimpleBar {
positionScrollbar(axis = 'y') {
const contentSize = this.scrollbarWidth ? this.contentEl[this.axis[axis].scrollSizeAttr] : this.contentEl[this.axis[axis].scrollSizeAttr] - this.minScrollbarWidth;
const trackSize = this.axis[axis].track.rect[this.axis[axis].sizeAttr];
const hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);
const scrollbar = this.axis[axis].scrollbar;

let scrollOffset = this.contentEl[this.axis[axis].scrollOffsetAttr];
scrollOffset = axis === 'x' && this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollingInverted ? -scrollOffset : scrollOffset;

let scrollPourcent = scrollOffset / (contentSize - trackSize);
let scrollPourcent = scrollOffset / (contentSize - hostSize);

let handleOffset = ~~((trackSize - scrollbar.size) * scrollPourcent);
handleOffset = axis === 'x' && this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollbarInverted
? handleOffset + (trackSize - scrollbar.size)
: handleOffset
;
handleOffset = axis === "x" && this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollbarInverted ? handleOffset + (trackSize - scrollbar.size) : handleOffset;

if (this.axis[axis].isEnabled || this.options.forceVisible) {
scrollbar.el.style.transform = axis === 'x' ? `translate3d(${handleOffset}px, 0, 0)` : `translate3d(0, ${handleOffset}px, 0)`;
Expand Down

0 comments on commit c9b622a

Please sign in to comment.