OverlayScrollbars

A javascript scrollbar plugin that hides the native scrollbars, provides custom styleable overlay scrollbars, and preserves the native functionality and feel.

MIT License

Downloads
2.6M
Stars
3.8K
Committers
15

Bot releases are visible (Hide)

OverlayScrollbars -

Published by KingSora about 5 years ago

Improvements:

  • overlayscrollbars-ngx has now AoT compilation support.
OverlayScrollbars - OverlayScrollbars Version 1.9.1

Published by KingSora about 5 years ago

Bugfixes:

  • Fixed a bug where the plugin didn't update correctly if you changed interleaved options twice in a row to the same value

Improvements:

  • created build script (build.js file)
  • The react, vue and angular components are finally out, you can install them via npm or you can find them in the packages folder:
npm install overlayscrollbars-react
npm install overlayscrollbars-vue
npm install overlayscrollbars-ngx
OverlayScrollbars - OverlayScrollbars Version 1.9.0

Published by KingSora about 5 years ago

Bugfixes:

  • Fixed a bug where unexpected scroll jumps happened after you changed a option.
  • Fixed a bug where a min-width change wasn't detected if width is auto
  • Fixed a bug where the update function didn't update a textarea properly, when only its value changed and due to that its size.

Features:

  • A new global method OverlayScrollbars.valid which checks whether a passed object is a non-destroyed OverlayScrollbars instance. You can read more about it here.

Improvements:

OverlayScrollbars - OverlayScrollbars Version 1.8.0

Published by KingSora over 5 years ago

Bugfixes:

  • Fixed #122
  • Fixed #120 and #119 with autoUpdate : true set.
  • Fixed a bug where the update() method didn't undo the sleep() method like it should.

Features:

  • The getState() methods returned object contains now a new property called destroyed which indicates that the instance has been destroyed.

Improvements:

  • Changed the management of passive event listeners: touch events which call prefentDefault() are now added with passive : false, all other events which should be passive and don't call prefentDefault() are added with passive : true. Fixed #124 with this change.
  • Preparation for framework wrappers such as react, vue and angular: the option() method will now only cause a call to the update() method if at least one option has been truly changed.

Internal Changes:

  • Cleaner handling of the internal update() method.
  • Preparation for DOM-tests.
OverlayScrollbars - OverlayScrollbars Version 1.7.3

Published by KingSora over 5 years ago

Bugfixes:

  • Fixed #120 - the status of the DOM / MutationObservers is now synchronized if you call the scroll or update function.
  • Fixed #119 - the used MutationObserver listens now to the open attribute.
  • Fixed a bug where you couldn't resize the host element when its size was 0 previously.
  • Fixed a IE8 bug where the plugin didn't work correctly.
OverlayScrollbars - OverlayScrollbars Version 1.7.2

Published by KingSora over 5 years ago

Bugfixes:

  • Fixed a bug where width: auto elements had incorrect width if paddingAbsolute was true.

Improvements:

  • OverlayScrollbars has better perfomance on Firefox now because it utilizes the new scrollbar-width CSS Property.
  • Improved perfomance on all browsers which are using natively overlaid scrollbars (mobile, OS-X etc.).
  • Changes to the textarea size measuring process, which results also in better performance if plugin is initialized on textarea elements.
OverlayScrollbars - OverlayScrollbars Version 1.7.1

Published by KingSora over 5 years ago

  • Fixed #110
OverlayScrollbars - OverlayScrollbars Version 1.7.0

Published by KingSora over 5 years ago

Bugfixes:

  • Fixed #98
  • Fixed #94 - The eval() call in the scroll method is now only needed if you pass a calculation or a unit string. Coordinates like 500, "500px", "+=500", "+=500px" are now executed without eval().
    Advanced coordinates with other units than px like "50%", "1vw", 1vh or whole calculation strings like "100px - 5%", "50% - 10px + 1vh" still needs the eval().
  • Fixed #102 Scaled host-elements are no longer a problem. You can test this with the new scaling demo!
  • Fixed a bug where the textarea-size was calculated incorrectly when padding was 0.
  • Fixed a bug which caused the overflow-amount to be incorrect on auto-sized elements.

Features:

  • A new option scrollbars.snapHandle was added which helps you to control how the scrollbar-handle behaves if you use CSS Snap Scrolling. Read more about it in the documentation
  • The scroll() methods returned object now has a new property called snappedHandleOffset. This is a object which represents the current handle-offset as if it was snapped with CSS Snap Scrolling, the normal handleOffset represents the current non snapped handle-offset. You can read more in the documentation which is up to date.

Improvements:

  • CSS Snap Scrolling has now deeper support: The handle dragging is now smooth (controlled with the new option scrollbars.snapHandle) and the jump-back if you let go midway has now a transition.
  • If you set a handle-max-size and the overflow is way to small, the resulting jump-back if you let go midway has now a transition.
  • If you drag the handle the next calculated scroll-position is now rounded instead of floored which results in better user-experience.
  • Click scrolling is now more precise.

Changes:

  • The since v1.6.0 deprecated object which the .scroll()-method returns is now removed. You can read more details in the documentation. I've removed it to reduce the code size.

Internal Changes:

  • Summarized certain code-parts where the same action was perfomred for each axis separately which reduced the code size.
OverlayScrollbars - OverlayScrollbars Version 1.6.3

Published by KingSora over 5 years ago

Bugfixes:

  • The scroll method sometimes scrolled to the wrong offset if the host size changed shortly before
  • The plugin didn't update properly if you changed the scrollbars.clickScrolling, scrollbars.dragScrolling or scrollbars.autoHide option
  • Fixed a small dimensions calculation bug when the scrollbar was used in a grid-layout
OverlayScrollbars - OverlayScrollbars Version 1.6.2

Published by KingSora almost 6 years ago

Bugfixes:

  • Fixed a bug where images which were loaded by a img element, was recognized but the DOM didn't update accordingly.

Improvements:

  • The recognition of invalid option passes was improved.
  • Internal improvements to make the textarea functionality compatible with frameworks where you are forced to use a wrapper around your web-component. (such as Angular or Aurelia)
OverlayScrollbars - OverlayScrollbars Version 1.6.1

Published by KingSora almost 6 years ago

Bugfixes:

  • Fixed #75
  • Fixed a bug where horizontal overflow wasn't calculated properly on textareas with content-box box-sizing
  • Fixed a bug where content-box sizing affected float detection (sometimes)

Improvements:

  • Implemented #76
  • Improved CSS
  • Textarea scroll-offset isn't jumping anymore after you changed the size to auto

Please make sure you use the latest CSS file, else this update could cause some troubles.

OverlayScrollbars - OverlayScrollbars Version 1.6.0

Published by KingSora almost 6 years ago

Bugfixes:

  • Fixed #70
  • Fixed #73 (OverlayScrollbars.min.css had incorrect style properties, while the non minified version was correct)
  • Fixed a bug where the complete callback of the scroll function was fired but the scroll-information from the scroll-method wasn't correct if you used them in the callback
  • Fixed a textarea-bug in IE where the plugin didn't scroll down if you created a new line

Features:

  • Added a new option called textarea.inheritedAttrs which was created to increase the control over the styling of textarea instances. Read more about it in the documentation.
  • In the .scroll()-method you can now pass a object as easing value which sepecifies a special easing.
    For example { x : 'linear', y : 'easeOutBounce' }
  • Nested instances updating improved (plugin specific classes wont cause a update anymore)
  • Increased flexbox compatibility (with the os-host-flexbox className)
  • The callbacks onOverflowChanged, onOverflowAmountChanged, onDirectionChanged, onContentSizeChanged, onHostSizeChanged and onUpdated are now dispatched after the onInitialized callback to provide the initial status. (so you don't have to handle the initial status separately in the onInitialized callback anymore)

Changes:

  • The structure of the object which the .scroll()-method returns has changed. I believe the new structure is much more practical. The old behavior is now deprecated. You can read more details in the documentation.

Internal Changes:

  • A better and cleaner structure within the construction and destriction methods.
OverlayScrollbars - OverlayScrollbars Version 1.5.3

Published by KingSora almost 6 years ago

General:

Bugfixes:

  • Sometimes the native scrollbar size wasn't calculated correctly in IE8 and Legacy-Opera.
  • The viewport-size is now always correct.
  • Handles floaty overflow-amounts (0.231px for example) more accurate. (for example if element is transformed / zoomed, or the browser zoom isn't exactly 100%)
  • Removed the hover method from the jQuery version, because it will be deprecated in the future. (#66)

Extensions:

  • Moved the type method from the framework object into the compatibility object, because jQuery will deprecated it in the future.
  • Moved the isArray method from the framework object into the compatibility object, because jQuery will deprecated it in the future. The method has also a new name: isA.
  • Removed the .hover(inHandler, outHandler) method from the framework object, because jQuery will deprecated it in the future. Please use the methods .on('mouseenter', inHandler) and .on('mouseleave', outHandler) instead.

The documentation is up to date: https://kingsora.github.io/OverlayScrollbars/#!documentation/extensions-basics

OverlayScrollbars - OverlayScrollbars Version 1.5.2

Published by KingSora about 6 years ago

  • Fixed the bug discussed in issue #59. (The scroll function synchronises now the DOM if needed)
  • Fixed a iFrame bug in Chrome, if you dragged the scrollbar-handle while you moved outside the iFrame the mouse won't be bound anymore to the handle if you move back in and you released the mouse button in the meanwhile.
  • In IE and Edge the plugin uses now screen coordinates instead of the page coordinates for the mouse position detection while scrollbar-handle-dragging, because the page coordinates are incorrect. (iFrame only)
OverlayScrollbars - OverlayScrollbars Version 1.5.1

Published by KingSora over 6 years ago

JS

  • fixed a bug which caused a invalid scroll position calculation of the .scroll() method if the direction of the target element was rtl
  • in very rare cases the overflow-amount was calculated incorrectly
  • sometimes the plugin was performing a full update, without it being required
  • increased performance of the non-jQuery version

General

OverlayScrollbars - OverlayScrollbars Version 1.5.0

Published by KingSora over 6 years ago

CSS:

  • The basic themes doesn't use opacity anymore to make the handle color transparent, it uses now background: rgba() to achieve the same effect.
  • Basic flexbox styles are now implemented

JS:

  • The Extension system with the new methods OverlayScrollbars.extension(), .ext(), .addExt() and .removeExt().
  • The initialization has now a new parameter which can be used to initialize OverlayScrollbars with a single or multiple Extensions
  • Implemented #50 (clickScrolling enhancement if you press shift while clicking)
  • Fixed #48
  • Fixed a bug where the display property of the host-element wasn't detected properly.
  • Firefox calculated sometimes false overflow values if the element was hidden during initialization
  • The .scroll() method element options was changed. The axis property is now deprecated and its replacement is the new scroll property. This was done in order to provide the same functionality as the Element.scrollIntoViewIfNeeded() and the Element.scrollIntoView() method.
  • A workaround in Firefox was implemented where scroll size was sometimes incorrect due to this bug.
  • The .scrollStop returns now the current OverlayScrollbars instance so you can chain the method with other methods.
  • The css transform: translate position for the scrollbar-handles is now in percent instead of pixels.

General:

  • The documentation was enhanced with a article about flexbox.
  • The documentation was enhanced with a article about extensions - with examples
  • A download page for extension has been added to the website.
OverlayScrollbars - OverlayScrollbars Version 1.4.5

Published by KingSora over 6 years ago

  • Fixed #41
  • Fixed #42
  • Fixed a bug where async methods were executed even if the instance were destroyed
  • Fixed a couple of iFrame bugs in InternetExplorer
  • Added a new property in the return object of the getState() method called documentMixed. It indicates whether the host-elements document isn't the same document as the one with which the plugin was initialized. If this property is true it's most likely the host-element is inside a iFrame.
  • AMD Support is back on track
OverlayScrollbars - OverlayScrollbars Version 1.4.4

Published by KingSora over 6 years ago

Fixed #28

OverlayScrollbars - OverlayScrollbars Version 1.4.3

Published by KingSora over 6 years ago

Fixed #25
Fixed a bug where the offset of the vertical scrollbar handle wasn't calculated properly.

OverlayScrollbars - OverlayScrollbars Version 1.4.2

Published by KingSora over 6 years ago

I've rewritten the whole option handling. It's not possible to set invalid default options anymore.
The size of the plugin was reduced about 3-4kb in the minified versions.