记录一次vue项目中swiper的使用以及遇到的问题

一、swiper版本:8.3.2;vue2

二、实现的轮播效果,一行多个slide

命令:

npm install swiper -S

main.js中引入:

import 'swiper/swiper-bundle.min.css'
import 'swiper/swiper-bundle.min'

//修改了下面这行代码 swiper中的page需要单独引入,否则不显示 自动播放也是需要引入
import Swiper, {Navigation, Pagination,Autoplay} from "swiper";
//新加了下面这行代码
Swiper.use([Navigation, Pagination,Autoplay]);
new Swiper('.swiper')

对应页面相关代码:

<div class="swiper-container">
        <div class="swiper-wrapper">
          <div class="swiper-slide" v-for="item in 8" :key="item">
            <Novnc />
          </div>
        </div>
        <!-- 如果需要分页器 代码稍作调整,整体不变 -->
        <div class="swiper-pagination"></div>
      </div>
mounted() {
    this.getSwiper()
  },
  methods: {
    getSwiper() {
      new Swiper('.swiper-container', {
        loop: false,
        slidesPerView: 4, //一页展示4个slide
        spaceBetween: 10,  //每个slide之间间距10px
        // 显示分页
        pagination: {
          el: ".swiper-pagination",
          clickable: true, //允许分页点击跳转
          type: 'progressbar',  //分页展示的类型
        },
        // 如果需要滚动条
        scrollbar: '.swiper-scrollbar',
      })
    },
  }

对应样式代码:

.swiper-container {  
  position: relative;
 /* 务必设置一下宽以及超出隐藏 */
  width: 1230px;
  overflow: hidden;
}
.swiper-slide {
  text-align: center;
  font-size: 18px;
  background: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
}
  /* 设置分页的位置 */
.swiper-pagination { 
  top: auto !important;
  bottom: 0;
}
.swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

三、问题回顾

由于代码原因遇到的问题代码中已做标注;以上基本可以实现基础轮播图显示,部分细节调整可以参考官方文档;

业务需求衍生问题:

1.轮播数据改变后轮播图不变化:通过监听数据变化,重新执行轮播方法

2.轮播图变化不完善:

this.$nextTick(() => {
        this.getSwiper() //监听后这样执行
      })

3.轮播图的元素通过参数控制显隐后整体效果变乱:轮播slide的显隐控制采用v-show,不要使用v-if;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3,你可以通过以下步骤来使用Swiper库进行轮播: 1. 首先,安装Swiper库。你可以使用npm来安装Swiper的最新版本。在终端运行以下命令: ``` npm install swiper@5 --save-dev ``` 2. 在Vue组件引入Swiper库。你可以使用ES模块引入方式来引入Swiper,如下所示: ```javascript import Swiper from 'swiper'; import 'swiper/swiper-bundle.css'; export default { mounted() { // 在组件挂载后初始化Swiper new Swiper('.swiper-container', { // 配置Swiper的选项 // 例如:slidesPerView, loop, pagination等 }); } } ``` 3. 在模板创建轮播容器。在组件的模板创建一个包含图片或内容的轮播容器,并为其添加一个唯一的类名,以便Swiper可以找到它。例如: ```html <template> <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide">Slide 1</div> <div class="swiper-slide">Slide 2</div> <div class="swiper-slide">Slide 3</div> </div> <div class="swiper-pagination"></div> </div> </template> ``` 4. 在Vue组件的挂载方法初始化Swiper。在Vue组件的`mounted`生命周期钩子,创建一个新的Swiper实例,并传入轮播容器的选择器,以及其他配置选项。例如: ```javascript mounted() { new Swiper('.swiper-container', { slidesPerView: 'auto', loop: true, pagination: { el: '.swiper-pagination', clickable: true } }); } ``` 通过以上步骤,你就可以在Vue3使用Swiper库来实现轮播效果了。记得在组件引入SwiperCSS文件,以确保样式正常加载。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue3 使用 swiper轮播库](https://blog.csdn.net/qq_36131788/article/details/121083045)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值