diff options
author | GeoSot <geo.sotis@gmail.com> | 2022-01-31 01:22:33 +0300 |
---|---|---|
committer | XhmikosR <xhmikosr@gmail.com> | 2022-02-19 15:52:36 +0300 |
commit | d97125475b3a5cbbafe3100d5981fd456c92c722 (patch) | |
tree | 18b0ddaabe02d7d14f3a6f8f04ac24d98d09cc9b /js/src | |
parent | a247fe9b27ec57152f07aaa5dfc79f633d2b6d10 (diff) |
Carousel: merge slide functionality, regardless of whether it is animated or not
Diffstat (limited to 'js/src')
-rw-r--r-- | js/src/carousel.js | 36 |
1 files changed, 16 insertions, 20 deletions
diff --git a/js/src/carousel.js b/js/src/carousel.js index 4cb03d51fe..00d9304953 100644 --- a/js/src/carousel.js +++ b/js/src/carousel.js @@ -372,39 +372,35 @@ class Carousel extends BaseComponent { }) } - if (this._element.classList.contains(CLASS_NAME_SLIDE)) { - nextElement.classList.add(orderClassName) + nextElement.classList.add(orderClassName) - reflow(nextElement) + reflow(nextElement) - activeElement.classList.add(directionalClassName) - nextElement.classList.add(directionalClassName) + activeElement.classList.add(directionalClassName) + nextElement.classList.add(directionalClassName) - const completeCallBack = () => { - nextElement.classList.remove(directionalClassName, orderClassName) - nextElement.classList.add(CLASS_NAME_ACTIVE) - - activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName) - - this._isSliding = false - - setTimeout(triggerSlidEvent, 0) - } - - this._queueCallback(completeCallBack, activeElement, true) - } else { - activeElement.classList.remove(CLASS_NAME_ACTIVE) + const completeCallBack = () => { + nextElement.classList.remove(directionalClassName, orderClassName) nextElement.classList.add(CLASS_NAME_ACTIVE) + activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName) + this._isSliding = false - triggerSlidEvent() + + setTimeout(triggerSlidEvent, 0) } + this._queueCallback(completeCallBack, activeElement, this._isAnimated()) + if (isCycling) { this.cycle() } } + _isAnimated() { + return this._element.classList.contains(CLASS_NAME_SLIDE) + } + _getActive() { return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element) } |