code: function move (wrapBox, startIdx, endIdx, Duration) {
        /* istanbul ignore if */
        if (!wrapBox) {
          return
        }
        // 双保险，确认位移的是 ele 的 width
        if (eleWidth !== ele.clientWidth) {
          eleWidth = ele.clientWidth
        }
        imgIndex = endIdx
        let endPosition = -eleWidth * endIdx
        if (Duration) {
          translateFn(endPosition, '0ms', wrapBox)
          wrapBox.style.transitionDuration = '0ms'
        } else {
          translateFn(endPosition, '300ms', wrapBox)
          wrapBox.style.transitionDuration = '300ms'
        }
        // resetPosAndIdx
        let posIdxObj = resetPosAndIdx(imgIndex, childNum, eleWidth, endPosition)
        curGestureClientx = posIdxObj.endPos
        endIdx = posIdxObj.endIndex
        imgIndex = endIdx
  
        // 如果有指示器，需更新选中位置的样式
        if (dotItems.length > 0) {
          changeIndicatorStyle(dotItems[startIdx - 1], dotItems[endIdx - 1], carouselParas.activeitem)
        }
        // 如果切换了坐标，需要在动画结束后重置translatex位置
        if (curGestureClientx !== endPosition) {
          setTimeout(function () {
            translateFn(curGestureClientx, '0ms', wrapBox)
            btnLock.stop = 1
          }, 400)
        }
        btnLock.stop = 1
        indicatorChange(imgIndex)
        viewer.eventAction.execute('switchCompleted', ele, {
          currIndex: imgIndex,
          currCarouselItem: childNodes[imgIndex],
          carouselChildrenLength: childNum
        })
        // 加载需要的图片
        prerenderSetSrc(childNodes, imgIndex, NUM, arraySrc)
        // autoHeight
        if (autoHeight) {
          let time = 0.3
          if (Duration) time = 0
          changeCarouselHeight(wrapBox.parentNode.parentNode, imgIndex, time)
        }
      }
docs: 图片滑动处理与手势滑动函数endPosition为最终距离,Duration变换时间