vue中使用swiper-slide时,循环轮播失效?
前言
vue 项目中使用时,组件swiper-slide 如果用v-for循环的话,loop:true 就不能无缝轮播,每次轮播到最后一张就停止了???
正文
代码如下:
<swiper :options="swiperOption2">
<swiper-slide v-for="(item, index) of showProduct" :key="index">
<el-row>
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
<div class="product-div">
<div class="product-p" v-html='item.introduction'></div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
<div id="product-img" v-if="item.androidcode !== null && item.androidcode !== ''">
<div class="grid-img">
<img class="android-img " :src="httpImgSrc+'/showImg@file.do?id=' + item.androidcode">
</div>
</div>
</el-col>
</el-row>
</swiper-slide>
<div v-show="isShow" class="swiper-button-prev" id="swiper-button-prev" slot="button-prev" style="mergin-top:-50px"></div>
<div v-show="isShow" class="swiper-button-next" id="swiper-button-next" slot="button-next"></div>
<div class="swiper-pagination-1" slot="pagination" id="swiper-pagination1"></div>
</swiper>
data数据:
swiperOption2: {
slidesPerView: 1,
spaceBetween: 30,
centeredSlides: true,
slidesPerGroup: 1,
loop: true,
pagination: {
el: '.swiper-pagination-1',
clickable: true
},
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
}
}
这么写看似是没毛病的。可是loop:true这个条件就失效了。这是为啥呢?
仔细查看swiper文档。
loop
设置为true 则开启loop模式。loop模式:会在原本slide前后复制若干个slide(默认一个)并在合适的时候切换,让Swiper看起来是循环的。
loop模式在与free模式同用时会产生抖动,因为free模式下没有复制slide的时间点。
注意红字,在原本基础上复制若干个slide,可是在vue的v-for中时,异步加载的数据都还没有返回时,就先加载了Swiper组件并复制了sliper
解决方法;
利用v-if的属性,v-if=showProduct.length,确保异步加载的数据已经返回后,再加载swiper组件
代码如下:
<swiper :options="swiperOption2" v-if="showProduct.length">
<swiper-slide v-for="(item, index) of showProduct" :key="index">
<el-row>
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
<div class="product-div">
<div class="product-p" v-html='item.introduction'></div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
<div id="product-img" v-if="item.androidcode !== null && item.androidcode !== ''">
<div class="grid-img">
<img class="android-img " :src="httpImgSrc+'/showImg@file.do?id=' + item.androidcode">
</div>
</div>
</el-col>
</el-row>
</swiper-slide>
<div v-show="isShow" class="swiper-button-prev" id="swiper-button-prev" slot="button-prev" style="mergin-top:-50px"></div>
<div v-show="isShow" class="swiper-button-next" id="swiper-button-next" slot="button-next"></div>
<div class="swiper-pagination-1" slot="pagination" id="swiper-pagination1"></div>
</swiper>
或
<swiper :options="swiperOption2" >
<swiper-slide v-for="(item, index) of showProduct" :key="index">
<el-row>
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
<div class="product-div">
<div class="product-p" v-html='item.introduction'></div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
<div id="product-img" v-if="item.androidcode !== null && item.androidcode !== ''">
<div class="grid-img">
<img class="android-img " :src="httpImgSrc+'/showImg@file.do?id=' + item.androidcode">
</div>
</div>
</el-col>
</el-row>
</swiper-slide>
<div v-show="isShow" class="swiper-button-prev" id="swiper-button-prev" slot="button-prev" style="mergin-top:-50px"></div>
<div v-show="isShow" class="swiper-button-next" id="swiper-button-next" slot="button-next"></div>
<div class="swiper-pagination-1" slot="pagination" id="swiper-pagination1"></div>
</swiper>
重启项目,loop完美解决
vue中使用swiper-slide时,循环轮播失效?的更多相关文章
- swiper在vue项目中的循环轮播bug以及点击事件
一般的,如果是静态数据(本地数据),可以直接在mounted生命周期中初始化,循环轮播.自动播放都比较正常. 但是,如果是动态从后台获取数据的话,采用上述方法会发现,轮播图无法自动播放,也无法拖拽. ...
- 解决ajax异步请求数据后swiper不能循环轮播(loop失效)问题、滑动后不能轮播的问题。
问题描述: 1.我使用axios异步请求后台的图片进行渲染后不能实现循环轮播,也就是loop失效,但是静态写死的情况下不会出现这种问题. 2. 分析: swiper的机制是:初始化的时候将swiper ...
- Vue编写轮播组件引入better-scroll插件无法正常循环轮播
临近过年还是发个博客表示一下自己的存在感,这段时间公司突然说想搞小程序,想到这无比巨大的坑就只能掩面而泣,于是乎这段时间在学习小程序开发.关于标题所说的是有老铁问的,我也跟着网上的代码码了一遍然后发现 ...
- 利用jQuery实现图片无限循环轮播(不借助于轮播插件)
原来我主要是用Bootstrap框架或者swiper插件实现轮播图的功能,而这次是用jQuery来实现图片无限循环轮播! 用到的技术有:html.css.JavaScript(少).jQuery(主要 ...
- 在Nuxt中使用react-id-swiper封装公共的轮播图组件(移动端
首先就是引入swiper import Swiper from 'react-id-swiper': 一个轮播图首先要考虑到一种情况就是当只有一张图的时候是不是需要按轮播图来处理 一般情况下,一张图是 ...
- 解析SwiftUI布局细节(二)循环轮播+复杂布局
前言 上一篇我们总结的主要是VStack里面的东西,由他延伸到 @ViewBuilder, 接着我们上一篇总结的我们这篇内容主要说的是下面的几点,在这些东西说完后我准备解析一下苹果在SiwftUI文档 ...
- 超级详细 一听就会:利用JavaScript jQuery实现图片无限循环轮播(不借助于轮播插件)
前言 作为一个前端工程师,无论公司是什么行业,无论你做什么端,基本都会遇到一个避不开的动画效果:循环轮播.做轮播并不难,市场上的轮播插件有很多,其中比较著名的是swiper,使用也非常简单.但轮播插件 ...
- 利用JavaScript jQuery实现图片无限循环轮播(不借助于轮播插件)-----转载
前言 作为一个前端工程师,无论公司是什么行业,无论你做什么端,基本都会遇到一个避不开的动画效果:循环轮播.做轮播并不难,市场上的轮播插件有很多,其中比较著名的是swiper,使用也非常简单.但轮播插件 ...
- vue.js学习之better-scroll封装的轮播图初始化失败
vue.js学习之better-scroll封装的轮播图初始化失败 问题一:slider组件初始化失败 原因:页面异步获取数据很慢,导致slider初始化之后,数据还未获取到,导致图片还未加载 解决方 ...
随机推荐
- [Unity优化]批处理04:MaterialPropertyBlock
参考链接: https://blog.csdn.net/liweizhao/article/details/81937590 1.在场景中放一些Cube,赋予一个新材质,使用内置shader(Unli ...
- Stream02
import 'package:flutter/material.dart';import 'dart:async';import 'dart:math'; void main()=>runAp ...
- mysql8 安装笔记
环境 redhat6.8 ,官网下载 rpm x64 Bund 安装包 安装 rpm -ivh xxx.rpm 安装一系列的rpm. mysql 会创建 mysql 用户及组./etc/my.cnf ...
- python __init__() 和__new__()简析
先看下面一个例子: 如上图,例1中,构造了函数Foo,并重写了__new__()和__init__()方法,在实例化Foo()的时候,却只调用了__new__() 例2中,在实例化Too()对象时,同 ...
- Daily Scrum 12.20
Member Task on 12.20 Task on 12.21 仇栋民 继续Task972 : 完成活动评分基础功能 完成Task972 : 完成活动评分基础功能 康家华 完成 Task1010 ...
- Python之路1-变量、数据类型、循环语法
1.python语言介绍 编程语言主要从以下几个角度进行分类,编译型和解释型,静态语言和动态语言,强类型定义语言和弱类型定义语言. 编译和解释区别 编译器是把源程序的每一条语句都编译成机器语言,并保存 ...
- 洛谷 P1443 马的遍历
终于遇到一个简单纯粹一点的bfs了...... 题目链接:https://www.luogu.org/problemnew/show/P1443 题目是求到达一个点的最短步数 也就是说我只要bfs遍历 ...
- php提供的用户密码加密函数
在实际项目中,对用户的密码加密基本上采用的 md5加盐的方式, php5.5后提供了一个加密函数,不需要手动加盐,不需要去维护盐值, $str = "123456"; $pwd ...
- [模板] CDQ分治&&BZOJ3262:陌上花开
简介 CDQ分治是分治的一种, 可以看做归并排序的扩展, 利用离线将一些 \(O(n)\) 的暴力优化到 \(O(log n)\). 它可以用来顶替一些高级(log)数据结构等. 一般地, CDQ分治 ...
- 基于stm32智能车的设计(ucosiii)---北京之行
实物演示视频:https://v.youku.com/v_show/id_XMzc3MDE3NjMyNA==.html?x&sharefrom=android&sharekey=172 ...