当前位置: 首页 > article >正文

vue3中swiper11的使用

Swiper官网
vue中使用方法

我使用的是 “vue”: “3.5.11”,swiper版本为 “swiper”: “11.1.14”“less”: “4.2.0”

1. 属性介绍

属性名作用
slidesPerView设置slider容器能够同时显示的slides数量(carousel模式)。可以设置为数字(小数不可loop),或者 'auto’则自动根据slides的宽度来设定数量。
autoplayautoplay:{ delay: 2000 ,disableOnInteraction: false };❤️autoplay为自动切换函数;❤️ delay:轮播项的延迟时间;❤️ disableOnInteraction:用户操作之后时候禁止自动切换。
navigation使用前进后退按钮来控制Swiper切换。
paginationpagination=“{ type: ‘bullets’, clickable: true }” ;❤️pagination:使用分页器导航;❤️type:分页器样式;❤️clickable是否可点击跳转到对应图片。
paginationscrollbar=“{ draggable: true }” ❤️scrollbar:设置滚动条,❤️draggable:该参数设置为true时允许拖动滚动条
directionSwiper的滑动方向,可设置为水平方向切换 horizontal / 垂直方向切换 vertical
space-between在slide之间设置距离(单位px)
modules在项目中引入swiper 时,需要用到的 Swiper 模块

2. 方法介绍

事件作用
@swiper事件函数,返回swiper实例
@slideChange事件函数。在当前Slide切换到另一个Slide时执行(activeIndex发生改变),一般是在点击控制组件、释放滑动的时间点

3. 代码示例

<template>
  <div class="swiper">
    <swiper
      :slidesPerView="1"
      :autoplay="{ delay: 2000, disableOnInteraction: true }"
      :navigation="true"
      :pagination="{ type: 'bullets', clickable: true }"
      :scrollbar="{ draggable: false }"
      :space-between="0"
      :modules="modules"
      @mouseenter="enter"
      @mouseleave="leave"
      @swiper="onSwiper"
      @slideChange="onSlideChange"
    >
      <swiper-slide v-for="(item, index) in props?.swiperImgArray" :key="index" class="swiperItem">
        <img :src="item.img" alt="" />
      </swiper-slide>
    </swiper>
  </div>
</template>
<script setup lang="ts" name="AutoSwiper">
	import { toRaw } from "vue"
	import { Swiper, SwiperSlide } from "swiper/vue"
	import "swiper/css"
	import "swiper/less/navigation"
	import "swiper/less/pagination"
	import { Autoplay, Navigation, Pagination, Scrollbar, A11y } from "swiper/modules"
	interface Item {
	  img: string
	}
	const props = defineProps<{ swiperImgArray: Item[] }>()
	
	let modules = [Autoplay, Navigation, Pagination, Scrollbar, A11y]
	//定义swiperNew,目的获取非响应式swiper
	let swiperNew: any
	
	//鼠标移入
	const enter = () => {
	  swiperNew.autoplay.stop()
	}
	//鼠标移出
	const leave = () => {
	  swiperNew.autoplay.start()
	}
	const onSwiper = (swiper: any) => {
	  // console.log(swiper);
	
	  swiperNew = toRaw(swiper) //拿到swiper对象再转换为非响应式
	}
	const onSlideChange = () => {
	  // console.log("slide change");
	}
</script>
<style lang="less" scoped>
	.swiper {
	  width: 100%;
	  height: 100%;
	  img {
	    width: 100%; 
	    height: 100%;
	  }
	
	  .swiperItem {
	    // border: aqua solid 1px;
	    // height: 200px;
	  }
	}
	
	:deep(.swiper-pagination) .swiper-pagination-bullet.swiper-pagination-bullet-active {
	  background-color: rgb(229, 127, 141);
	}
	
	:deep(.swiper-pagination-bullet) {
	  //修改分页器圆点大小
	  width: 8px;
	  height: 8px;
	  background-color: #fff;
	}
	
	.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,
	:deep(.swiper-pagination-horizontal.swiper-pagination-bullets) .swiper-pagination-bullet {
	  // 分页器远点之间的距离
	  margin: 0 10px;
	}
	
	:deep(.swiper-button-prev),
	:deep(.swiper-button-next) {
	  color: rgb(229, 127, 141);
	}
</style>

swiper


http://www.kler.cn/a/350558.html

相关文章:

  • 华为AI培训-NLP实验
  • 【网络协议】RFC3164-The BSD syslog Protocol
  • ARP Check
  • 通信协议之多摩川编码器协议
  • Go语言之路————条件控制:if、for、switch
  • 【Go】Go数据类型详解—指针
  • Unity-Shader简介
  • 滑动窗口经典例题
  • 【CSS in Depth 2 精译_046】7.1 CSS 响应式设计中的移动端优先设计原则(下)
  • 奖金——Topsort
  • 基于STM32的自学习走迷宫智能小车设计
  • 空间限域效应
  • Java基础14-网络编程
  • 基于springboot学生成绩管理系统
  • linux系统,不定时kernel bug :soft lockup的问题
  • android studio导入外部项目
  • 24/10/12 算法笔记 汇聚层
  • mysqlRouter读写分离
  • 常用分布的数学期望、方差、特征函数
  • linux下编译鸿蒙版boost库
  • 【2021】知识图谱导论(陈华钧)——阅读思考与笔记
  • 常见网络协议的介绍、使用场景及 Java 代码样例
  • 《深度学习》循环神经网络RNN 结构及原理解析
  • 应急响应处置流程Windows篇
  • LLM - 使用 Neo4j 可视化 GraphRAG 构建的 知识图谱(KG) 教程
  • GO 语言协程知识点学习笔记