- Upgrade to Angular 19.
- refactor: Use
afterRenderEffect
when suitable instead ofeffect
. - refactor: In
<ng-scrollbar externalViewport>
useLinkedSignal
to set external elements. - enhance: Make
--scrollbar-button-size
settable from:root
.
- fix: Bug with
visibility="visible"
closes #674. - refactor: In effects, move
onCleanup
function insideuntracked
function in thePointerEventsAdapter
class. - refactor: Use
from
instead offromPromise
to convert a promise to observable.
- feat: Disable / Suppress the scroll bar during runtime, in #658.
- fix: Wrong track size when used in 3rd party dropdown components, in #669.
- fix: Scrollbar buttons icons not showing in Safari, in #664.
- fix:
asyncDetection
scrollbars rendering delay. - feat:
scrollViewport
directive can be a descent child, not necessarily a direct child of<ng-scrollbar externalViewport>
. - feat: Add
start
,end
,right
,bottom
andcenter
options toscrollToElement
(supports RTL), closes #637. - feat: Add
syncSpacer
directive that is applied on<ng-scrollbar externalViewport>
component to sync spacer element with content dimension changes. - fix:
ResizeObserver
loop completed with undelivered notifications, closes #650. - enhance: Improve scrollbar rendering speed that uses
externalViewport
such as integrating with 3rd party library. - enhance: Use the shared resize observer from the CDK to do the necessary calculation.
- enhance:
asyncDetection
Use the content observer service from the CDK to detect viewport and content wrapper elements. - enhance: use
--scrollbar-thumb-hover-color
not only when hovered but also when active. - enhance:
track
andthumb
controls uses more accurate measures usinggetBoundingClientRect
instead of direct size properties. - refactor: Switch to
InputSignal
instead of standards inputs across components. - refactor: Use effects instead of
ngOnInit
to initialize the scrollbar component. - refactor: Remove
scrollViewport
directive fromng-scrollbar
hostDirectives because it's redundant. - refactor: the
TrackAdapter
now uses viewport & content dimension signals to update the track size instead ofResizeObserver
events.
- Minimum compatibility is Angular v17.3.0
- The directive
cdkVirtualScrollViewport
no longer acceptsauto
value, instead usesyncSpacer
- Before
<ng-scrollbar externalViewport cdkVirtualScrollViewport="auto">
- After
<ng-scrollbar externalViewport cdkVirtualScrollViewport syncSpacer>
- Before
- enhance: Use injection factory for
NG_SCROLLBAR_OPTIONS
andNG_SCROLLBAR_POLYFILL
to avoid merging custom options with the default options for every scrollbar component. - refactor: Use
self
option when injectingNgScrollbar
component in all addon directives. - fix: Scrollbar with
externalViewport
attached scrollbar not destroyed properly causing memory leak, closes#611.
- Set the latest fixed polyfill CDN as default.
- Update Typescript to v5.5.4, closes #633.
- feat: Add a new option
hoverOffset
to activate hover effect on the offset area around the scrollbar, closes #616. - fix: Scrollbar thumb color is not changing on hover, closes #625.
- fix: global Angular app styles gets broken in Firefox, closes #615.
- feat: Ability to set the scrollbar CSS variables from
:root
or any parent selector, closes #591 and #606.
- fix: SSR with CDK Virtual Scroll -
ResizeObserver
is not defined error thrown, closes #603. - regret: Remove the
requestAnimationFrame
before emitting toafterInit
andafterUpdate
which was added to fix the unit tests.
This was not a bug or an issue in the previous version v15.0.0
- feat: Upgrade to Angular 18.
- feat: Ship the scroll timeline polyfill with the package.
- fix: Content Security Policy violation for script-src, closes #572.
- fix:
cdkVirtualScrollViewport
got dependency of @angular/material/select, closes in #573. - fix:
cdkVirtualScrollViewport
horizontal scrollbar not showing when orientation is vertical, closes in #571. - fix:
ScrollToElement
function wrong scroll position, closes in #574. - fix: Remove height and width attributes from the scrollbar SVG icons.
- Remove
ngx-scrollbar/utils
package and split its directives into 2 sub-packagesngx-scrollbar/cdk
andngx-scrollbar/mat
to avoid wrong dependency.
- fix: Scrollbar buttons - arrow icons are not being displayed in Safari mobile.
- feat: Support complex markup with
scrollToElement
function, closes #268. - feat: Add
provideSmoothScrollOptions
function to ease overriding the default smooth scroll options. - refactor: Enhance and simplify smooth scroll manager.
- refactor: Enhance track drag code and functionality.
- refactor: Simplify and reuse code in thumb drag code.
- refactor: Reuse code in scrollbar button component.
- regret: Use
offsetWidth
andoffsetHeight
again instead ofgetBoundingClientRect
due to incorrect value when scrollbar is used in an overlay such asmatSelect
. - fix:
(reachedEnd)
does not work without subscribing to(reachedBottom)
.
- Remove
NgScrollbarReachModule
. - Rename the directive
MatSelectViewport
toNgScrollbarMatSelectViewport
.
- feat: Add scrollbar buttons using
buttons
options, closes #465. - refactor: Reuse similar code in track, thumb and buttons directives.
- refactor: content wrapper selector should be direct child of the viewport.
- refactor: Use
swithcMap
instead ofexpand
for track long ongoing pointer down event. - refactor: Only use
getRtlScrollAxisType
once on initialization inSmoothScrollManager
. - refactor:
matSelectViewport
use instant scroll function to scroll to the selected item in the list. - refactor: Use
getBoundingClientRect
in all directives instead ofoffsetWidth
andoffsetHeight
for high precision calculation.
- The default value for the CSS variable
--scrollbar-offset
became 0 (was 4 before). - The default value for the CSS variable
--scrollbar-border-radius
became 0px (was 7px before).
- fix: Should not initialize the scrollbar if
externalSpacer
selector was set but was not found. - refactor: Unify properties in track and thumb directives.
- refactor: When
asyncDecetion="true"
reset viewport adapter properties if viewport / content wrapper elements are removed. - enhance: Add missing unit tests,
- feat: Added support for dynamically initializing scrollbars for content rendered async (3rd party libraries) using
asyncDetection="auto"
. - fix: Wrong mobile attribute setter (was using
SAFARI
flag instead ofIOS
). - enhance: Use
MutationObserver
instead ofngAfterViewChecked
to detect content inasyncDetection
directive. - refactor: Improve error handling when selectors was not found in
<ng-scrollbar externalViewport>
component. - refactor: Remove the default value for track transition.
- refactor: Add additional CSS variables to customize the fade effect when
visibility="hover"
:--scrollbar-hover-opacity-transition-enter-duration
.--scrollbar-hover-opacity-transition-leave-duration
.--scrollbar-hover-opacity-transition-leave-delay
.
- refactor: The following CSS variables were removed:
--scrollbar-hover-transition-duration
.--scrollbar-hover-transition-delay
.
- Rename the option
clickScrollDuration
totrackScrollDuration
.
- fix: In RTL, horizontal scrollbar track click does not work properly, closes #548.
- fix: PrimeNg integration, native scrollbar still appears in Safari browsers.
- refactor: Enable scrollbar interactions on mobile devices.
- feat: Add a provider function
provideScrollbarOptions
to override of the default options. - feat: Add a provider function
provideScrollbarPolyfill
to override the default scroll timeline polyfill link. - feat: Add
asyncDetection
directive that helps integration with 3rd-party libraries.
- Rename
ScrollbarAppearance
default value fromstandard
tonative
. - Rename
ScrollbarVisibility
value fromalways
tovisible
.
- feat: Significant performance improvement, the scrollbar does not rely on the scroll event anymore. updating scroll thumb position is done via native CSS which means the calculation is done on the browser background worker.
- feat: Auto-height feature is default now, the component behaves like a standard HTML element and will fit its content out of the box.
- feat: Mimic the scroll behavior when the track is clicked.
- feat: Add
cdkVirtualScrollViewport
directive to the util package. - feat: Add
matSelectViewport
directive to the util package, closes #537. - enhance: Add payload to differentiate update cause, closes #517.
- enhance: Use
throttleTime
instead ofdebounceTime
in case resize sensor needed to be throttled. - fix: scrollbar disappearing on Firefox/Safari when reaching bottom/end, closes #529.
- fix: scroll position when the track is clicked
- feat: Use the
IntersectionObserver
instead of the scroll event to detect when scroll is reached. - feat: Add
reachedTopOffset
reachedBottomOffset
reachedStartOffset
andreachedEndOffset
in addition toreachedOffset
input. - feat: Alternatively, you can accomplish the same using the new CSS variables
--reached-offset
,--reached-offset-top
,--reached-offset-bottom
,--reached-offset-start
and--reached-offset-end
. - fix: Scrolled Event triggered after Reached Event, closes #521.
- fix: reachedBottom output broke scrollbar layout inside mat-select, closes #531.
-
Options renamed:
track
has been renamed toorientation
sensorDisabled
has been renamed todisableSensor
sensorDebounce
has been renamed tosensorThrottleTime
pointerEventsDisabled
has been renamed todisableInteraction
trackClickScrollDuration
has been renamed toclickScrollDuration
(updated)
has been renamed to(afterUpdate)
-
Options removed:
disabled
option has been removed.viewClass
option has been removed.minThumbSize
option has been removed, use the css variable instead--scrollbar-thumb-min-size
.autoWidthDisabled
has been removed.autoHeightDisabled
option has been removed.autoWidthDisabled
option has been removed.scrollAuditTime
option has been removed since the scroll event is no longer used.windowResizeDebounce
has been removed from the global options.- The stream
NgScrollbar.scrolled
has been removed, UseNgScrollbar.viewport.nativeElement
to listen to the scroll event.
-
Usage changes:
When viewport directive is used, it requires externalViewport
attribute on the component like the following example:
<ng-scrollbar externalViewport>
<div scrollViewport>
...
</div>
</ng-scrollbar>
Note that an additional content wrapper element is required in order for the scrollbar to work properly.
Additionally, you can select the viewport by providing a selector .my-viewport
instead of using scrollViewport
directive.
<ng-scrollbar externalViewport=".my-viewport">
<div class="my-viewport">
...
</div>
</ng-scrollbar>
- fix:
scrollViewport
directive removes custom CSS classes applied on the viewport element, closes #505 in 8e1f663.
- feat: Add reached event unit tests.
- fix: Reached event is not fired, closes #495 in 5233793.
- enhance: Reached directives should subscribe to the scroll event outside angular zone.
- refactor: Replace the usage of the deprecated
pluck
RXJS operator withmap
- feat: Standalone component mode.
SmoothScrollModule
has been removed, you can importSmoothScroll
directive directly instead!NgScrollModule.withConfig()
function has been removed, useNG_SCROLLBAR_OPTIONS
to set the global config instead!
- fix: when enable strictTemplates, incorrect types error on boolean value for input properties, closes #491 in #492
- Update to Angular 16
- Remove
bezier-easing
package from dependencies
- Update to Angular 15 in ca5e7cc.
- Update to Angular 14 in 668fb23.
- Fix rxjs
peerDependencies
warning on installation and update dependencies in #419
- Upgrade to Angular 13, closes #413 in b105a0a.
- Use the proper types for events and objects instead of using
any
, in f613d4f and 6829c0e.
- feat: Build library in partial compilationMode, in 7c6e49d.
- Possible breaking change in case of using it with Angular 9.
- feat: Ability to change scrollbar transition duration and delay using CSS variables, closes #383 in 221b700.
- feat: Add
overscroll-behavior
option as a CSS variable--scrollbar-overscroll-behavior
, in 1aa81e4. - fix: Update scrollbar when dir changes, in cce5c14.
- Fix performance issue regarding change detection loop in case
OnPush
is not used, closes #373 in 11128c9.
NOTE: In v7.6.0 Do not disable the sensors if you are integrating the scrollbar with the CDK virtual scroll component
NOTE: This version has peerDependencies error on install
- fix: Create
ResizeObserver
interface, closes #336 in dd0718c. - Update peer-dependencies to Angular 11
- feat: Add resize sensor unit tests
- Deprecate the resize observer polyfill (package:
@juggle/resize-observer
), closes #329 in 9069192. - Auto-height: the feature became disabled by default, in bf8cda1.
The reason to disable the auto-height by default is to avoid performance issues with users who are unaware that it is turned on. When the auto-height is on, and the content size changes very frequently, it could cause performance issue, like in virtual scroll and infinite scroll libraries.
- feat: Add the options missing interface of scrollToElement method in 5867163.
- fix: scrollToElement customOptions default value in fff0c72.
- fix(Auto-width): Set component width instead of minWidth, closes #319 in 4d2176f.
- refactor(Auto-height, Auto-width) features
- make sure child container are equal to component height when set (auto-height/auto-width)
- fix tests
- Update dependencies to Angular 11.
- Refactor the library with strict mode.
- feat: Include scrollbar padding when hovering, closes #300 in f907c72 and f4c0a0d.
- feat: Ability to disable auto-height feature, closes #311 in f76d347.
- feat: Auto-width feature, in c934b04.
- feat: Upgrade to Angular 10.
- fix(reached): Can't bind to 'reachedOffset' since it isn't a known property of 'ng-scrollbar', closes #293 in cc9b1b5.
- fix: adjust hiding the native scrollbar, closes #266 in 110a24e and 110a24e.
- fix(ivy): Use directive instead of pipe in 5058a8a.
- fix(Angular 9): Update dependencies (Angular and CDK), closes#272 in ffbceab.
- Feat: Ability to set
NgScrollbarModule.withConfig(options)
in 6fca314. - Feat: Ability to propagate
mousemove
events of the viewport element, closes#255 in d24804a. - Feat: Ability to use string value on boolean inputs in 752d715.
- Fix: Fix ivy problem by using a directive instead of a pipe to set the CSS variable, closes #217 in c43ca40.
- Fix: Adjust hiding the native scrollbars on MacOS and Android in 0b590d7.
- Fix: Fix compatibility with Angular material 9 in a97f69f and 3ce361f.
- Fix: Remove installation warning in Angular 9 in d8080a7
- Feat: Add
scrollAuditTime
option to tweak performance when on a low framerate budget, closes #245 in 0e0bccb. - Fix: check options param for null values, closes #247 in b3e67ed.
- Fix: Production build fails with 'strictNullChecks' compiler option, closes #219 in ac1a0d6.
- Fix: Remove
scroll-behavior
CSS rule, closes #242 in 6b89d6f. - Fix: fix auto-height update, closes #243 in 7cac0fb.
- Fix: Scrollbar breaks when loading on mobile, closes #236 in 33dfa71.
- Update package dependencies in 9523194.
- Fix: auto-height feature in aa16191 and 0560af2.
- Enhance: Prevent selection on track click, in 529450f and 4f66fd2.
- Enhance: Make sure viewport pointer-events are cleaned up on destroy, in 4b909f6.
- Feat: Add
[pointerEventsMethod]="viewport | scrollbar"
option, this sets the method used for detecting scrollbar pointer events, closes #216 in c552e60. - Feat: Add auto-height, closes #214 in 940d8df..
- Refactor: Rename disabled attribute, closes #218 in f0206fd.
- Refactor: Use a directive for each scrollbar part.
- Feat: Add CSS variable to disable transition for scrollbar thumb size change.
- Refactor: Merge
[trackClicked]
and[thumbClicked]
with into one option[pointerEventsDisabled]
, closes #229 in ef1176b. - Fix: Production build fails with 'strictNullChecks' compiler option, close #219 in 45fc235.
-
Add
[pointerEventsMethod]
input that can be either"scrollbar"
or"viewport"
, default"scrollbar"
.- Use viewport pointer events to detect scrollbar clicks and drag event.
Pro:
- Scrolling works when mouse is over the scrollbar element Cons:
- If used with
[appearance]="standard"
and both vertical and horizontal direction were scrollable, content may overlap under the scrollbar.
- Use scrollbar pointer events to detect scrollbar clicks and drag event.
Pro:
- This works properly with
[appearance]="standard"
content never overlap with the scrollbar. Cons: - Scrolling doesn't work when mouse is over the scrollbar element
- This works properly with
- Use viewport pointer events to detect scrollbar clicks and drag event.
Pro:
-
Replace
[trackClickedDisabled]
and[thumbDragDisabled]
with one option[pointerEventsDisabled]
.
- Feat(SmoothScroll): Ability to pass
HTMLElement
,ElementRef
orstring
for element selector in the smooth scroll functions. - Feat(SmoothScroll): Ability to use scrollTo function using
top
,left
,right
,bottom
,start
andend
. - Feat(SmoothScroll): Ability to set an offset in
scrollToElement
function usingtop
andleft
options' properties. - Feat(SmoothScroll): Use bezier-easing makes it easier to customize the smooth scroll ease function #208 in c3436a2.
- Fix all smooth scroll problems, closes #186 in b5072b2.
- Fix Scrollbar appears in some cases even if content isn't scrollable, closes #198 in a4233b4.
- Fix white page issue in Edge, closes #205 in 4547370.
- Add
@juggle/resize-observer
to dependencies, closes #185 in c2b524c. - Avoid calling
getRtlScrollAxisType()
in scroll reached events, closes in #203 in 295ac17
- Smooth scroll functions options parameters has been modified
scrollToBottom
,scrollToTop
,scrollToLeft
,scrollToRight
,scrollToSelector
- Refactor smooth scroll functions parameters
scrollTo
andscrollToElement
, see the wiki for new option interface. ngScrollbar.scrollToSelector('#target')
has been removed, you can now usengScrollbar.scrollToElement('#target')
instead
- Fix reached events in RTL in Mozilla and Safari, closes #193 in 8279828.
- Fix reached events in AOT, closes #187, closes #187 in 5f67fe3.
- Refactor scroll viewport layout with absolute positioning, closes #189 in c9c4dae.
- fix: Hovering on a scrollbar highlights both scrollbars, closes #181 in b533413.
- fix: Add missing polyfill
@juggle/resize-observer
to peerDependencies.
- Feat: Add
sensorDebounce
andsensorDisabled
toNgScrollbarOptions
. - Feat: Use native ResizeObserver API if available, otherwise lazy-load the polyfill, in 7efd0a2.
- Feat: Ability for element parameters types to be
ElementRef
in smooth scroll functions, in 1a4d578. - Enhance: Validate boolean and number inputs, in 298e91b.
- Refactor: Rename
disableThumbDrag
tothumbDragDisabled
in component inputs andNgScrollbarOptions
, in df31a97. - Refactor: Rename
disableTrackClick
totrackClickDisabled
in component inputs andNgScrollbarOptions
, in df31a97. - Refactor: Rename
scrollToDuration
totrackClickScrollDuration
in component inputs andNgScrollbarOptions
, in df31a97. - Refactor: Use standard positioning instead of the absolute in 4cbe7ee.
- Refactor: Use the CDK's getRtlScrollAxisType instead of browser check, in 275cce3.
- Refactor: Remove
NgScrollbarModule.withConfig()
option. - Bug: fix hover transition when
visibility="hover"
, in f67a69.
To remove complexity, the ResizeObserver
API by default if it is available in the browser otherwise import the polyfill async
- Remove
ContentSensor
andResizeSensor
directives. - Remove
NgScrollbarContentSensorModule
andNgScrollbarResizeSensorModule
modules. - Remove
disableThumbDrag
in favor ofthumbDragDisabled
in component inputs andNgScrollbarOptions
. - Remove
disableTrackClick
in favor oftrackClickDisabled
in component inputs andNgScrollbarOptions
. - Remove
scrollToDuration
in favor oftrackClickScrollDuration
in component inputs andNgScrollbarOptions
. - Remove
NgScrollbarModule.withConfig()
option, provide theNG_SCROLLBAR_OPTIONS
token for global options instead.
- Enhance: Enable scrolling when pointer is over the scrollbar in the standard appearance is used.
- Bug: Scrollbar hover behavior is inconsistent (especially when a hover size is used).
- Bug: CDK content wrapper is not getting
ng-scroll-content-wrapper
class. - Bug: CSS variable
--scrollbar-hover-color
isn't effective after disabling the pointer events. - Remove the CSS variables
--scrollbar-wrapper-color
and--scrollbar-viewport-margin
.
- Upgrade to Angular 8, closes #161.
- Feat: Mobile browser support, closes #172.
- Feat: Scroll works when mouse is over the scrollbars, closes #168.
- Feat: Resize Sensor directive, closes #166.
- Feat: Use with 3rd party libraries such as
ngx-infinite-scroll
, closes #155. - Feat: Add global options provider, closes #154.
- Feat: Add an option to set the minimum size for the scrollbar thumbnail, closes #171.
- Feat: Add reached outputs, closes #159.
- Bug: Fix RTL for horizontal scrollbar, closes #169.
- Bug: Nested scrollbars, child component scroll event not working, closes #146.
- Enhance: Refactor component layout with CSS Grid, closes #157.
- Enhance: Use promises for smooth scroll functions, closes #152.
- Enhance: Use empty space in the scrollbars corner when both vertical and horizontal is shown, closes #151
- Enhance: Provide smooth scroll functionality as a service, closes #162.
- Enhance: Add unit testing, closes #163.
- Enhance: Scrollbar is getting too much space depending on OS and Browser, closes #147.
Known issue
- BUG: When used with CDK Virtual scroll, scrolling goes up and down.
- feat: Add support for virtual scrolling, closes #140 in aaf5dc5.
- enhance: Update scrollbars on window resize #123 in 252e769.
- fix: Horizontal scrollbar in non-compact mode on Firefox and Edge, in 35ae8d4
- fix: Remove webkit-scrollbar transparent background, closes #106 in 7fe3749.
- fix: in some cases, native scrollbar are shown after it is enabled, in 59124ff.
- fix: Nested
<ng-scrollbar>
s inherit overflow style, in 9c83b22. - fix: Compact mode on Edge, in 2be44c6.
- feat: Fix horizontal scrollbar position, closes #113 in c435932.
- feat: Ability to always show scrollbars even if content is not scrollable, closes #112 in 2df15de.
- refactor: Add
[shown]
input and remove[autoHide]
, Ability to always show scrollbars.
- The
[autoHide]
input has been removed in favor of[shown]
.
Before: [autoHide]="true"
shows scrollbar only when mouse is over the scroll view.
After: Use shown="hover"
or [shown]="'hover'"
.
- feat(RTL Support): Fix horizontal scrollbar on RTL, in 9d992e6.
- feat: Add
invertX
andinvertY
inputs to invert scrollbars position, in 3571b63. - feat: Add CSS variables to ease styling the component, in 33ed138.
- enhance: Improve layout using flex-box.
- refactor: Rename
[overlay]
to[compact]
- fix: Using the default change detection strategy with
[disabledOnBreakpoints]="false"
producesExpressionChangedAfterItHasBeenCheckedError
, closes #108 in .
- The input
[overlay]
has been renamed to[compact]
- fix smooth scroll error which was introduced in 3.3.1 (40540bb).
- enhance: Show native scrollbars when disabled, closes #99 in 1bb5a08.
- enhance: Remove
overflow: scroll
when disabled, in 39badee and d5dcbdb.
- fix(NgScrollbar): Avoid enable execution if disabled, in d51d07e.
- fix(NgScrollbar): fix server-side rendering crash, in edde8ff.
- enhance(NgScrollbar): Avoid overriding scrollbar component
box-sizing
value, closes #96 in d51d07e. - refactor(NgScrollbarThumb): Use vertical and horizontal component for clearer code, in (49ac18b and 83fc884.
- ci: test Node.js 8, 10 and 11 (189b849).
- enhance(NgScrollbar): Keep native scrollbars hidden when the component is disabled,closes #88 in 4762a7e and 3ef3d8a.
- enhance(NgScrollbar): Push the native scrollbars 1px more to fix its appearance in Edge browser.
- refactor(NgScrollbarThumb): Refactor scrollbar initializer function, in 5dbcc22.
- feat(NgScrollbar): Add
[overlay]
input to make scrollbars position appears over content. - feat(NgScrollbar): Add
[disabled]
input to enable/disable the custom scrollbars, in 9ac7f8d. - feat(NgScrollbar): Add
characterData: true
to MutationObserver to update on text changes, remove the need to manually update the scrollbars. - fix(NgScrollbar): Content goes out of the container when scroll bar is not present, closes #86 in c8d9505.
- enhance(NgScrollbar): Don't update scrollbar if disabled, in 7f154e9.
- enhance(NgScrollbarThumb): Make sure the last emit from MutationObserver is not ignored by
throttleTime
, in fff2083. - refactor(NgScrollbar, NgScrollbarThumb): Set scrollbar display value from parent component.
- refactor(NgScrollbarThumb): Use rxjs syntax to initialize scrollbar thumbnail size, in f201736.
- enhance(NgScrollbar): Use
animationFrameScheduler
to set scrollbar thumb position, in 717d221. - enhance(NgScrollbar): Add a smooth transition on scrollbar thumbnail size, in 8da5c31.
- fix(NgScrollbar): Enable back the scrollbar after it was disabled, closes #81 in 9ce2f56.
- refactor(NgScrollbar): Remove
padding
from view port styles and use containerbottom
andright
to hide the native scrollbars, in 0f98686. - regret(NgScrollbar): return
height: 100%
on component styles.
- feat(NgScrollbar, SmoothScroll): Add offset value in
scrollToElement()
in 937374c. - fix(NgScrollbar): Fix scrollbar view on dynamic height, closes #72 in 3ea592f.
- fix(NgScrollbar): Fix scrollbar dragging in prod, in f109322.
- enhance(NgScrollbar): Hide the scrollbar when its thumbnail size is 0, in 55f37e6.
- enhance(NgScrollbarThumb): Move scrollbar thumb styles to
NgScrollbar
component styles, removes the need to add!important
to override the styles, in 8b59b64. - enhance(NgScrollbarThumb): Use
OnPush
change detection, in b05ee45.
- feat(SmoothScroll): Add
[smoothScroll]
directive which can be imported independently e.g.import {SmoothScrollModule} from 'ngx-scrollbar'
. - feat(NgScrollbar): Add
[disableOnBreakpoints]
to disable the custom scrollbars on certain breakpoints. - refactor(NgScrollbar): Improve performance by removing
(scrollState)
output which causes a change detection on each emit. - fix(NgScrollbar): Fallback to native scrollbars on mobile, closes #59.
- enhance(NgScrollbar): Improve component default styles.
- The component class name has changed from
ScrollbarComponent
toNgScrollbar
. - The module class name has changed from
ScrollbarModule
toNgScrollbarModule
. (scrollState)
output is removed, to get the scroll event use the component ref, example:
@ViewChild(NgScrollbar) ngScrollbar: NgScrollbar;
ngScrollbar.scrollable.elementScrolled().subscribe(e => console.log(e))
- feat(ScrollbarComponent): All scrollTo functions return an observable that emits when the scroll function is done.
- feat(ScrollbarComponent): Add
scrollTo
andscrollToElement
functions, in 6acdf70. - feat(ScrollbarComponent): Add cross-browser smooth scroll, in 6acdf70.
- fix peerDependencies for Angular >= 6, in 6c78229.
- fix(ScrollbarComponent): Scrollbar are not shown on init, closes #48 in bac70d5.
- refactor(ScrollbarComponent): Use right and bottom to hide the native scrollbars, in 91b6b6f.
- refactor(ScrollbarComponent): Encapsulate component styles, in 0fd9b92.
- enhance(ScrollbarComponent): Use CDK ScrollModule instead of native scroll event, in d5d59b3.
- Must subscribe on any scrollTo function you use, e.g.
ScrollbarComponent.scrollToBottom().subscribe()
- fix(ScrollbarComponent): fix SSR by checking if the
MutationObserver
code is running on the browser, in 86adf42. - refactor(ScrollbarComponent): General refactor, in 3d406a3.
- Update dependencies
- feat(ScrollbarComponent): Adds
scrollToTop
,scrollToBottom
,scrollToRight
,scrollToLeft
functions, closes #39 in 664982d.
- refactor(ScrollbarComponent): rxjs style for scrollbar thumb workers events in #36
- Remove pointer from scrollbar to default
- Fixes a bug: Check if the subscription is defined before unsubscribing, closes #18.
- Regret: use renderer again, remove the state architecture.
- Fix wrong subscriptions, closes #12.
- Fix the tiny delay before rendering scrollbars thumbnails (which was introduced in v1.5.0).
- Refactor: bind a state instead of using renderer
- Refactor: Make classes inputs reactive
- Improve performance: run code using NgZone
- Support Universal: remove unsupported interfaces in Universal like
MouseEvent
- Refactor with RxJS 5.5 pipe style
- Feature(autoUpdate): Add
[autoUpdate]
option to automatically update on content changes - Feature(Update function): Add
update()
function to manually update scrollbars - Enhancement: Add
height: 100%
to the component style
- Feature(custom classes)
[viewClass]
,[barClass]
and[thumbClass]
inputs to add custom classes
- Feature(ScrollTo function): Add animated scroll to a specific position
- Fix(scrollbar positions when content is changed)
- Refactor(Scrollbar Component)
- Fix(dragging scrollbars) closes #3
- Change
trackX
input tofalse
by default
- Remove
characterData: true
from the MutationObserver which was causing a issue in nested scrollbars - Use
ViewEncapsulation.None
for the component style
- Initial release