From 0b089e430a87985c06c92b57f1030580e5cbecdd Mon Sep 17 00:00:00 2001 From: dasiux Date: Tue, 26 Apr 2022 20:59:36 +0200 Subject: [PATCH] fix Scroller.scrollTo + add complete option --- CHANGELOG.md | 6 +++++- docs/es6/Animation.md | 2 +- package.json | 2 +- src/es6/Animation/Scroller.js | 7 +++++-- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c0abebd..fc0358c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,12 @@ # Changelog +## 0.8.5 + - Added *options.complete* for *Scroller* class to provide a default complete callback option. + - Fixed *Scroller.event_scrollToClick()* event target, should be currentTarget. + ## 0.8.4 - Fixed *scrollTo* functions *withTop* option to respect scroll position. - - Added *Plugins.require()* to check for and fetch required plugins or throw and error. + - Added *Plugins.require()* to check for and fetch required plugins or throw an error. ## 0.8.3 - Minor improvements. diff --git a/docs/es6/Animation.md b/docs/es6/Animation.md index 608398e..e42ad49 100644 --- a/docs/es6/Animation.md +++ b/docs/es6/Animation.md @@ -93,7 +93,7 @@ class Scroller extends EventDispatcher { selector : String // Scroll to link selector, default: [href^="#"] capture : Boolean // Capture initial scroll, default: true initial : Number|'ready' // Initial scroll delay after capture - hashClean : Number // scrollComplete delay, default: 300 + complete : null|Function // Complete callback for local scrollTo } initial : null|HTMLElement // Initial scroll-to target scrollTo( element, complete = null ) {} // void diff --git a/package.json b/package.json index c5fbfb0..7855e27 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@squirrel-forge/ui-util", - "version": "0.8.4", + "version": "0.8.5", "description": "A collection of utilities, classes, functions and abstracts made for the browser and babel compatible.", "main": "src/es6/index.js", "scripts": { diff --git a/src/es6/Animation/Scroller.js b/src/es6/Animation/Scroller.js index cd764be..e35edd6 100644 --- a/src/es6/Animation/Scroller.js +++ b/src/es6/Animation/Scroller.js @@ -16,6 +16,7 @@ import { isPojo } from '../Object/isPojo.js'; * @property {string} selector - Scroll to link selector, default: [href^="#"] * @property {boolean} capture - Capture initial scroll, default: true * @property {number|'ready'} initial - Initial scroll delay after capture + * @property {null|Function} complete - Complete callback for local scrollTo */ /** @@ -69,6 +70,7 @@ export class Scroller extends EventDispatcher { selector : '[href^="#"]', capture : true, initial : 1000, + complete : null, }; // Update config @@ -88,10 +90,11 @@ export class Scroller extends EventDispatcher { * @param {null|Function} complete - Complete callback * @return {void} */ - scrollTo( element, complete = null ) { + scrollTo( element, complete ) { let params = this.config.offset; if ( !( params instanceof Array ) ) params = [ params ]; params.unshift( element ); + if ( typeof complete === 'undefined' ) complete = this.config.complete; if ( typeof complete === 'function' ) scrollComplete( complete ); scrollTo( ...params ); } @@ -103,7 +106,7 @@ export class Scroller extends EventDispatcher { * @return {void} */ #event_scrollToClick( event ) { - const id = event.target.getAttribute( 'href' ).substr( 1 ); + const id = event.currentTarget.getAttribute( 'href' ).substr( 1 ); const target = document.getElementById( id ); if ( target ) { this.scrollTo( target );