vue3+vite+ts引入swiper并使用

安装swiper版本

npm install swiper@7.4.1
import { Swiper, SwiperSlide } from "swiper/vue";
import "swiper/css";
import { Autoplay } from "swiper";

let modules = [Autoplay];
<swiper
      @swiper="onSwiper"
      :slidesPerView="3"
      :autoplay="{ delay: 2500, disableOnInteraction: true }"
      :loop="true"
      :direction="'vertical'"
      :space-between="10"
      :modules="modules"
      @mouseenter="enter"
      @mouseleave="leave"
    >
      <swiper-slide>Slide 1</swiper-slide>
      <swiper-slide>Slide 2</swiper-slide>
      <swiper-slide>Slide 3</swiper-slide>
      <swiper-slide>Slide 4</swiper-slide>
      <swiper-slide>Slide 5</swiper-slide>
      <swiper-slide>Slide 6</swiper-slide>
    </swiper>

因为我要实现的效果是竖行滚动,并且一页展示3条数据 所以 slidesPerView设置为3,direction设置为"'vertical'" ,一定记住必须是双引号里面再包单引号,不然没效果。

自动播放的话,就要引入模块

import { Autoplay } from "swiper";

let modules = [Autoplay];,

咱也不知道为啥这样写,反正swiper7官方文档是喊这样写的。

然后如果想移入暂停就要先获取到swiper对象,但是获取到的是响应式对象,所以需要先转换为非响应式

//定义swiperNew,目的获取非响应式swiper
let swiperNew: any;

//鼠标移入
const enter = () => {
  swiperNew.autoplay.stop();
};
//鼠标移出
const leave=()=>{
  swiperNew.autoplay.start();
}
const onSwiper = (swiper: any) => {
  swiperNew = toRaw(swiper);  //拿到swiper对象再转换为非响应式
};

打印一下获取的对象

完事!!!! 

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值