diff --git a/src/inner-slider.js b/src/inner-slider.js index 7cbdb27ad..9ed348239 100644 --- a/src/inner-slider.js +++ b/src/inner-slider.js @@ -304,7 +304,8 @@ export class InnerSlider extends React.Component { }; checkImagesLoad = () => { let images = - (this.list && this.list.querySelectorAll && + (this.list && + this.list.querySelectorAll && this.list.querySelectorAll(".slick-slide img")) || []; let imagesCount = images.length, diff --git a/src/utils/innerSliderUtils.js b/src/utils/innerSliderUtils.js index c06029d0a..3ae34e7cd 100644 --- a/src/utils/innerSliderUtils.js +++ b/src/utils/innerSliderUtils.js @@ -6,10 +6,10 @@ export function clamp(number, lowerBound, upperBound) { export const safePreventDefault = event => { const passiveEvents = ["onTouchStart", "onTouchMove", "onWheel"]; - if(!passiveEvents.includes(event._reactName)) { + if (!passiveEvents.includes(event._reactName)) { event.preventDefault(); } -} +}; export const getOnDemandLazySlides = spec => { let onDemandSlides = []; @@ -297,7 +297,13 @@ export const changeSlide = (spec, options) => { } } else if (options.message === "dots") { // Click on dots - targetSlide = options.index * options.slidesToScroll; + if (options.index === currentSlide) { + targetSlide = options.index; + } else if (slideCount === options.index + 1 && currentSlide === 0) { + targetSlide = -1; + } else { + targetSlide = options.index * options.slidesToScroll || slideCount; + } } else if (options.message === "children") { // Click on the slides targetSlide = options.index; @@ -386,9 +392,12 @@ export const swipeMove = (e, spec) => { let touchSwipeLength = touchObject.swipeLength; if (!infinite) { if ( - (currentSlide === 0 && (swipeDirection === "right" || swipeDirection === "down")) || - (currentSlide + 1 >= dotCount && (swipeDirection === "left" || swipeDirection === "up")) || - (!canGoNext(spec) && (swipeDirection === "left" || swipeDirection === "up")) + (currentSlide === 0 && + (swipeDirection === "right" || swipeDirection === "down")) || + (currentSlide + 1 >= dotCount && + (swipeDirection === "left" || swipeDirection === "up")) || + (!canGoNext(spec) && + (swipeDirection === "left" || swipeDirection === "up")) ) { touchSwipeLength = touchObject.swipeLength * edgeFriction; if (edgeDragged === false && onEdge) {