解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题


Posted in Javascript onSeptember 27, 2018

Vue使用swiper插件时特别是轮播元素含有动态数据时可能会出现数据为空或者白屏的问题

使用下面的方法可以解决(保证在数据请求之后再渲染页面)

页面结构

<div class="swiper-container">
 <div class="swiper-wrapper">
 <div class="swiper-slide tpOne" v-if="topInfo">
  <-- 此处为绑定数据的轮播元素 -->
  <div class="bannerBox1">
  <div class="l_label" >{{topInfo.label}}</div>
  <div class="l_title" >{{topInfo.title}}</div>
  <div class="l_tips" >{{topInfo.tips}}</div>
  <div class="l_bottom"><span><img src="..." alt=""></span>{{topInfo.bottom}}</div>
  </div>
 </div>
 <div class="swiper-slide"><img src="" alt="" /></div>
 <div class="swiper-slide"><img src="" alt="" /></div>
 <div class="swiper-slide"><img src="" alt="" /></div>
 </div>
 <div class="swiper-pagination"></div>
</div>

初始化方法

//mounted 或者topInfo的值获取到时再调用初始化方法
swiperInit() {
 var mySwiper = new Swiper('.swiper-container', {
  pagination : '.swiper-pagination',
  paginationType : 'bullets',
  autoplay : 2000,
  // loop : true,
 })
},

获取数据

getInfo:function(){
 var _this=this;
 XXX.ajax({
  url: '...',
  success: (r)=> {
  if(!!r.ret){
   _this.topInfo=r.ret;
   //此时获取到数据再显示Swiper
   _this.getFlag=1;
  }
  }
 })
 },

下面再提供一个例子

页面结构

<div class="swBox" v-if="sw_flag&&!!banners.length">
 <div class="swiper-container">
 <div class="swiper-wrapper">
  <div class="swiper-slide" v-for="(banner,index) in banners" :key="index" @click="toNextUrl(banner,index)">
  <img :src="banner.image" alt="" />
  </div>
 </div>
 <div class="swiper-pagination"></div>
 </div>
</div>

初始化方法

swiperInit() {
 var mySwiper = new Swiper('.swiper-container', {
  pagination : '.swiper-pagination',
  paginationType : 'bullets',
  autoplay : 2000,
  observer:true,
  observeParents:false
 })
 },

获取数据

getData:function(){
 var _this=this;
 //此处设置sw_flag变量的目的在于控制swiper显示关闭开关,当数据重新请求时,先关闭swiper,请求完毕数据再重新渲染页面;
 _this.sw_flag=0;
 XXX.ajax({
 url: '...',
 success: (r)=> {
  if(!!r.ret){
  _this.banners=r.ret.banners||"";
  _this.sw_flag=1;
  //此时获取到数据再初始化swiper
  _this.$nextTick(function(){
   if(!!_this.banners.length){
   _this.swiperInit();
   }
  });
  }
 }
 })
},

注:我用的swiper版本是 3.4.2

以上这篇解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中提前声明变量或函数例子
Nov 12 Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
Sep 09 Javascript
angularJS Provider、factory、service详解及实例代码
Sep 21 Javascript
Javascript 实现微信分享(QQ、朋友圈、分享给朋友)
Oct 21 Javascript
canvas绘图不清晰的解决方案
Feb 28 Javascript
认识jQuery的Promise的具体使用方法
Oct 10 jQuery
Bootstrap模态对话框用法简单示例
Aug 31 Javascript
30分钟快速实现小程序语音识别功能
Nov 27 Javascript
原生JS实现列表内容自动向上滚动效果
May 22 Javascript
Node.js 实现远程桌面监控的方法步骤
Jul 02 Javascript
Angular8基础应用之表单及其验证
Aug 11 Javascript
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
vue中使用axios post上传头像/图片并实时显示到页面的方法
Sep 27 #Javascript
如何在 JavaScript 中更好地利用数组
Sep 27 #Javascript
axios 封装上传文件的请求方法
Sep 26 #Javascript
axios取消请求的实践记录分享
Sep 26 #Javascript
Node.js模拟发起http请求从异步转同步的5种用法
Sep 26 #Javascript
在vue中获取token,并将token写进header的方法
Sep 26 #Javascript
基于axios 解决跨域cookie丢失的问题
Sep 26 #Javascript
You might like
php中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
php实现MySQL数据库备份与还原类实例
2014/12/09 PHP
php中使用base HTTP验证的方法
2015/04/20 PHP
iOS+PHP注册登录系统 PHP部分(上)
2016/12/26 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
js判断图片加载完成后获取图片实际宽高的方法
2016/02/25 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
浅谈es6中export和export default的作用及区别
2018/02/07 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
2018/08/08 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
vue实现添加与删除图书功能
2018/10/07 Javascript
微信小程序mpvue点击按钮获取button值的方法
2019/05/29 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
2017/06/27 Python
TensorFlow 滑动平均的示例代码
2018/06/19 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
python随机生成库faker库api实例详解
2019/11/28 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
Python collections模块的使用方法
2020/10/09 Python
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
新加坡网上美容店:Hermo新加坡
2019/06/19 全球购物
汽车销售求职自荐信
2013/10/01 职场文书
音乐表演专业毕业生求职信
2013/10/14 职场文书
工作表现自我评价
2014/02/08 职场文书
企业授权委托书范本
2014/04/02 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
手机销售员岗位职责
2015/04/11 职场文书
爱心募捐通知范文
2015/04/27 职场文书
学校教学工作总结2015
2015/05/19 职场文书
2016师德师风学习心得体会
2016/01/12 职场文书
2019年销售人员的职业生涯规划书
2019/03/25 职场文书
2019新员工心得体会
2019/06/25 职场文书
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
你知道Java Spring的两种事务吗
2022/03/16 Java/Android