微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swiper React carousel 上类似 iPhone 的拖动/滑动平滑缓动滚动动画

如何解决Swiper React carousel 上类似 iPhone 的拖动/滑动平滑缓动滚动动画

我创建了以下 swiper carousel 组件:

const MyCarousel = ({ children }: Props) => {
  const navPrev = useRef<HTMLButtonElement>(null);
  const navNext = useRef<HTMLButtonElement>(null);

  const onBeforeInit = (swiper: SwiperCore): void => {
    const navigation = swiper.params.navigation as Navigationoptions;
    navigation.prevEl = navPrev.current;
    navigation.nextEl = navNext.current;
  };

  return (
    <div>
      <ArrowButton type="prev" ref={navPrevButton} />
      <ArrowButton type="next" ref={navNextButton} />
      <Swiper
        tag="section"
        wrapperTag="ul"
        slidesPerView="auto"
        onBeforeInit={onBeforeInit}
        spaceBetween={15}
        slidesOffsetBefore={15}
        slidesOffsetAfter={15}
        freeMode
        freeModeMomentumRatio={0.2}
        freeModeMomentumBounce={false}
        breakpoints={{
          1280: {
            spaceBetween: 30,slidesOffsetBefore: 0,slidesOffsetAfter: 0,},}}
      >
        {React.Children.map(children,(child: NodeCarouselChild) => (
          <SwiperSlide tag="li" key={child.key}>
            {React.cloneElement(child,{
              classes: styles.card,})}
          </SwiperSlide>
        ))}
      </Swiper>
    </div>
  );
};

export default MyCarousel;

如何实现类似 iPhone 的拖动/滑动滚动过渡?如果用户更用力地拖动/滑动它应该进一步滚动。如果用户不那么用力地拖动/滑动它应该减少滚动并且还以平滑的缓动动画结束滚动。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。