问题描述:

在一个页面中需要一个用swiper的轮播图,数据大概有40条,每一屏幕的swiper只显示其中的n条数据。

代码描述:

<div id="app">
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide">
a b c d e f g
</div>
<div class="swiper-slide">
1 2 3 4 5
</div>
</div>
</div>
</div>

图片描述直接上图:

思路:

使用双重for循环,把n个元素放到一个小组组,再把这些小组组合成一个大的数组。

实现:

首先模拟数据列表有11条,每个Swiper-slide放6条,计算需要Swiper-slide的公式如下:

reviewList: [
{imgSrc: '../images/img.png',msg: '某某代表在大会上发言1'},
{imgSrc: '../images/img.png',msg: '某某代表在大会上发言2'},
{imgSrc: '../images/img.png',msg: '某某代表在大会上发言3'},
{imgSrc: '../images/img.png',msg: '某某代表在大会上发言4'},
{imgSrc: '../images/img.png',msg: '某某代表在大会上发言5'},
{imgSrc: '../images/img.png',msg: '某某代表在大会上发言6'},
{imgSrc: '../images/img.png',msg: '某某代表在大会上发言7'},
{imgSrc: '../images/img.png',msg: '某某代表在大会上发言8'},
{imgSrc: '../images/img.png',msg: '某某代表在大会上发言9'},
{imgSrc: '../images/img.png',msg: '某某代表在大会上发言10'},
{imgSrc: '../images/img.png',msg: '某某代表在大会上发言11'},
];
barNum = reviewList.length / 6 === 0 ? reviewList.length / 6 : (reviewList.length / 6) + 1 ;

公式中的6代表的是需要在Swiper-slide中存放的条数。

第二步需要把数组拆分然后重组。让每6条或不足6条的组成一个数组。

var  barAry: [];
for(let i = 0; i < reviewList.length; i += 6){
barAry.push(reviewList.slice(i, i + 6));
}

上面中6代表的是需要在Swiper-slide中存放的条数。组合成大数组的数据如下:

[
[{
"imgSrc": "../images/img.png",
"msg": "某某代表在大会上发言1"
}, {
"imgSrc": "../images/img.png",
"msg": "某某代表在大会上发言2"
}, {
"imgSrc": "../images/img.png",
"msg": "某某代表在大会上发言3"
}, {
"imgSrc": "../images/img.png",
"msg": "某某代表在大会上发言4"
}, {
"imgSrc": "../images/img.png",
"msg": "某某代表在大会上发言5"
}, {
"imgSrc": "../images/img.png",
"msg": "某某代表在大会上发言6"
}],
[{
"imgSrc": "../images/img.png",
"msg": "某某代表在大会上发言7"
}, {
"imgSrc": "../images/img.png",
"msg": "某某代表在大会上发言8"
}, {
"imgSrc": "../images/img.png",
"msg": "某某代表在大会上发言9"
}, {
"imgSrc": "../images/img.png",
"msg": "某某代表在大会上发言10"
}, {
"imgSrc": "../images/img.png",
"msg": "某某代表在大会上发言11"
}]
]

最后是在v-for中实现:

<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide msg-content" v-for="value in barAry">
<div class="graphic" v-on:click="popInfo" v-for="value2 in value">
<img :src="value2.imgSrc" alt="">
<p>{{ value2.msg }}</p>
</div>
</div>
</div>
</div>

Vue中v-for配合使用Swiper插件问题的更多相关文章

  1. 如何在Vue项目中优雅的使用swiper插件

    个人网站 https://iiter.cn 程序员导航站 开业啦,欢迎各位观众姥爷赏脸参观,如有意见或建议希望能够不吝赐教! 开始之前,请先确保有一个基于webpack模板的项目(vue-cli脚手架 ...

  2. webpack+vue中安装使用vue-layer弹窗插件

    1.安装vue-layer插件 npm install vue-layer --save-dev 2.打包入口文件main.js中引入vue.vue-layer.并且将vue-layer添加到vue原 ...

  3. 在vue中使用jq或者第三方插件

    1.安装jQuery npm i jquery -S 2.修改webpack的配置文件 文件目录及名称:build/webpack.base.conf.js 注释代码为修改部分 'use strict ...

  4. vue中引用swiper轮播插件

    有时候我们需要在vue中使用轮播组件,如果是在vue组件中引入第三方组件的话,最好通过npm安装,从而进行统一安装包管理. 申明:本文所使用的是vue.2x版本. 通过npm安装插件: npm ins ...

  5. vue中引入swiper插件

    这里我们使用npm的方式安装swiper插件. 1.npm install vue-awesome-swiper --save 2.在main.js文件中引入文件 import Vue from 'v ...

  6. 实战:vue项目中导入swiper插件

    版本选择 swiper是个常用的插件,现在已经迭代到了第四代:swiper4.常用的版本是swiper3和swiper4,我选择的是swiper3. 安装 安装swiper3的最新版本3.4.2: n ...

  7. swiper在vue中的用法

    首先通过npm i vue-awesome-swiper --save 来在vue中下载插件 然后再main.js中引入 require('swiper/dist/css/swiper.css')im ...

  8. 在vue中使用天气插件

    在vue中使用天气插件 插件网址:  中国天气 选择自己需要的插件.生成代码复制即可 在 vue 中的使用: template 中 <div id="weather-v2-plugin ...

  9. 【Vue中的swiper轮播组件】

    <template> <swiper :options="swiperOption" ref="mySwiper"> <!-- s ...

随机推荐

  1. LAMP框架

    一基本常识 LNMP (Linux + Nginx + MySQL + PHP) LAMP (Linux + Apache + MySQL + PHP) //php作为Apache的模块Apache. ...

  2. 4.站点克隆wget----隐写术图片----backbox linux

    站点克隆wget sudo bash cd Desktop/Cloned wget -h clear wget -mk https://help.ubuntu.com/ 隐写术图片 想想朋友圈的图片 ...

  3. 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)

    ubuntu更新软件时 apt-get upgrade 遇到 E: 无法获得锁 /: 资源暂时不可用) E: Unable to acquire the dpkg frontend lock (/va ...

  4. python pandas 自动生成批量测试数据插入数据库 mysql

    1.python连接数据库游标 # coding:utf-8 from sqlalchemy import create_engine class connet_databases: def __in ...

  5. .net core 学习小结之 自定义JWT授权

    自定义token的验证类 using System; using System.Collections.Generic; using System.IO; using System.Linq; usi ...

  6. 简述Vue的路由与视图

    1.vue-router 安装方式 npm/cnpm:(个人偏向于cnpm) npm/cnpm install vue-router --save-dev bower: bower install v ...

  7. LTUI v1.1, 一个基于lua的跨平台字符终端UI界面库

    简介 LTUI是一个基于lua的跨平台字符终端UI界面库. 此框架源于xmake中图形化菜单配置的需求,类似linux kernel的menuconf去配置编译参数,因此基于curses和lua实现了 ...

  8. Comet OJ C1076 [Contest #4]求和

    题目 首先我们可以通过经典容斥转化为计算\([1,x]\)的答案. 现在我们考虑一个数的个位对答案的贡献. 每做一次操作都会让个位加上十位然后取模,直到只有个位为止. 我们发现这个过程中,个位数前的系 ...

  9. CVE-2016-8655,af_packet Linux 內核通殺提權漏洞淺析

    簡單寫一下思路 這個東西需要namespace方面的支援, 首先open socket , 一連串路徑(packet_set_ring()->init_prb_bdqc()->prb_se ...

  10. 输入某年某月某日,判断这一天是这一年的第几天?(可以用 Python 标准 库)

    import datetime def dayofyear(): year = input("请输入年份:") month = input("请输入月份:") ...