From af2e2683b465d294c2db60309530d6b20f9a516f Mon Sep 17 00:00:00 2001 From: tangjinzhou <415800467@qq.com> Date: Wed, 15 Dec 2021 23:52:43 +0800 Subject: [PATCH] fix: carousel touch warning, close #5040 --- components/vc-slick/src/utils/innerSliderUtils.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/components/vc-slick/src/utils/innerSliderUtils.js b/components/vc-slick/src/utils/innerSliderUtils.js index b41caa87c..0db587921 100644 --- a/components/vc-slick/src/utils/innerSliderUtils.js +++ b/components/vc-slick/src/utils/innerSliderUtils.js @@ -1,3 +1,5 @@ +import supportsPassive from '../../../_util/supportsPassive'; + export const getOnDemandLazySlides = spec => { const onDemandSlides = []; const startIndex = lazyStartIndex(spec); @@ -275,7 +277,7 @@ export const keyHandler = (e, accessibility, rtl) => { }; export const swipeStart = (e, swipe, draggable) => { - e.target.tagName === 'IMG' && e.preventDefault(); + e.target.tagName === 'IMG' && !supportsPassive && e.preventDefault(); if (!swipe || (!draggable && e.type.indexOf('mouse') !== -1)) return ''; return { dragging: true, @@ -311,8 +313,11 @@ export const swipeMove = (e, spec) => { listWidth, } = spec; if (scrolling) return; - if (animating) return e.preventDefault(); - if (vertical && swipeToSlide && verticalSwiping) e.preventDefault(); + if (animating) { + !supportsPassive && e.preventDefault(); + return; + } + if (vertical && swipeToSlide && verticalSwiping) !supportsPassive && e.preventDefault(); let swipeLeft; let state = {}; const curLeft = getTrackLeft(spec); @@ -379,7 +384,7 @@ export const swipeMove = (e, spec) => { } if (touchObject.swipeLength > 10) { state['swiping'] = true; - e.preventDefault(); + !supportsPassive && e.preventDefault(); } return state; };