首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SwiperSlide onTouchStart/onClick =>触发器slideNext()

SwiperSlide onTouchStart/onClick =>触发器slideNext()
EN

Stack Overflow用户
提问于 2020-08-08 07:27:44
回答 3查看 8.7K关注 0票数 4

我想包括这张幻灯片:https://swiperjs.com/react/

因为我发现拖拽下一张幻灯片不太舒服,所以我想在完整的幻灯片中添加一个onClick事件,这样下一张幻灯片就来了。

如何在反应中触发slideNext()?我在阅读文档/我不理解它时遇到了问题--而且文档似乎没有告诉我如何在react中这样做。

在jquery中,如下所示:

代码语言:javascript
复制
$('section.slideshow').on( 'click', function() {
    swiper.slideNext();
});

这是我的反应代码:

代码语言:javascript
复制
import React from 'react'
import SwiperCore, { Navigation, Pagination, A11y } from 'swiper'
import { Swiper, SwiperSlide } from 'swiper/react'

import 'swiper/swiper.scss'
import 'swiper/components/navigation/navigation.scss'
import 'swiper/components/pagination/pagination.scss'

SwiperCore.use([Navigation, Pagination, A11y])


function Page(){
  return (
    <div>

<Swiper 
  onClick={() => console.log('click')}
  onTouchStart={() => slideNext()     }
>

  <SwiperSlide>slide 1</SwiperSlide>
  <SwiperSlide>slide 2</SwiperSlide>

</Swiper>

</div>

  );
}

export default Page;
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-08-08 07:48:22

您可以选择使用在Navigation中编写的文档 API。

代码语言:javascript
复制
<Swiper
    navigation={{
        nextEl: '.next',
    }}
>
    <SwiperSlide className="next">slide 1</SwiperSlide>
    <SwiperSlide className="next">slide 2</SwiperSlide>
    <SwiperSlide className="next">slide 3</SwiperSlide>
</Swiper>

CodeSandBox:https://codesandbox.io/s/so-react-swiper-next-slide-2714t?file=/src/App.js

票数 9
EN

Stack Overflow用户

发布于 2021-08-19 08:28:35

用于反应钩的

定义如下useState:

代码语言:javascript
复制
const [my_swiper, set_my_swiper] = useState({});

然后在你的刷卡中定义如下:

代码语言:javascript
复制
<Swiper 
    slidesPerView={1}
    onInit={(ev) => {
        set_my_swiper(ev)
    }}>
        <SwiperSlide>
            <div>
                Slide 1
            </div>
        </SwiperSlide>
        <SwiperSlide>
            <div>
                Slide 2
            </div>
        </SwiperSlide>
</Swiper>

注意要绑定到变量的onInit方法。

然后,您可以使用my_swiper钩子调用下一个/前面的函数,如下所示。

代码语言:javascript
复制
my_swiper.slideNext();
my_swiper.slidePrev();

您可以在任何地方调用这些命令来动态控制您的刷卡。

此外,您可以导航到任何幻灯片。

代码语言:javascript
复制
my_swiper.slideTo(number);
票数 4
EN

Stack Overflow用户

发布于 2020-08-08 07:45:06

我把它用在下面:

代码语言:javascript
复制
<Swiper
                        getSwiper={this.updateSwiper}
                        {...params}
                        
                    >{/*modules={[Navigation]}*/}
                        {items}
                    </Swiper>

通过这些职能:

代码语言:javascript
复制
updateSwiper(value:any) {
    this.setState({
        swiper: value
    });
}

goNext = () => {
    if (this.state.swiper !== null) {
        this.state.swiper.slideNext();
    }
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63312848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档