• 在页面开发中,经常会碰到需要轮播,滑动等需求,特别是多元素滑动,此时,要么自己写,要么网上找轮子,不过自己写,其实还是有点难度的,一般就是网上找写好的库,本文就是针对vue-awesome-swiper的
  • 其实这个库很早了,就叫swiper,现在版本是swiper4了,功能非常丰富
  • 本次的具体需求如下:
    • 在一个固定大小的框中显示4个小礼物,然后自动轮播,每次变化一个,并且这里面部分礼物是可以点击的

本次碰到的主要问题是,在无限的轮播中,后面复制出来的元素无法绑定点击事件,下面是解决办法

<template>
<div class="swiper3">
<swiper :options="swiperOption">
<swiper-slide v-for="(item, index) in giftType" :key="index">
<div class="gift-type" :data-id="item.id">
<img :src="item.img" alt="">
<p>{{item.detail1}}</p>
<p class="point-text" style="height: 0.1rem;">{{item.detail2}}</p>
</div>
</swiper-slide>
</swiper>
</div>
</template> <script>
import 'swiper/dist/css/swiper.css'
import { swiper, swiperSlide } from 'vue-awesome-swiper'
export default {
name: "swiper3",
components: {
swiper,
swiperSlide
},
data() {
const vm = this;
return {
swiperOption: {
// spaceBetween: 4,
slidesPerView:4,
loop : true,
autoplay: {
delay: 3000,
stopOnLastSlide: false,
disableOnInteraction: false,
},
on: { //关键在这儿,通过点击事件拿到对应的元素,从而确定具体index
tap:function (e) {
console.log(e,e.target,'click');
let dom=e.target.parentNode;
// console.log(dom.dataset.id);
vm.handle(dom.dataset.id); }
}
},
swiperSlides: [1, 2, 3, 4, 5,6],
giftType:[{
img: require('../assets/gifts/icon-gift.png'),
detail1:'*10EXP',
detail2:'كمية يومية 50 ',
id:1
},
{
img: require('../assets/gifts/icon-super-id.png'),
detail1:'ارقام يوميا',
detail2:'3 ',
id:2
},
{
img: require('../assets/gifts/icon-enter.png'),
detail1:'تأثيرات الدخول',
detail2:'',
id:3
},
{
img: require('../assets/gifts/icon-exp.png'),
detail1:'800-6000',
detail2:'',
id:4
},
{
img: require('../assets/gifts/icon-coins.png'),
detail1:'100-1000',
detail2:'',
id:5
}
],
}
},
methods:{
handle(id){
console.log(id,'点击了');
//这里写点击的逻辑
}
}, }
</script> <style scoped lang="scss"> .swiper-container{
width:100%;
margin:0 auto;
position: relative;
background-image:linear-gradient(to right, #fef9df, #fae49d,#fef9df);
height: 1.5rem;
}
.swiper-slide{
width: 25%; transform:scale(1);
transition-timing-function: ease;
transition-duration: 300ms;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: relative;
padding: 0.14rem 0 0.11rem;
.gift-type{
width: 100%;
height: 100%;
font-size:0.12rem;
font-weight: bold;
color: #366F5E;
line-height: 0.18rem;
/* background: #000;*/
.point-text{
color:red;
}
img{
width: 0.76rem;
height: 0.72rem;
}
p{
width: 100%;
text-align: center;
} } }
.slider-item.slider-active {
transform:scale(1.0);
z-index: 999;
}
.slider-item.slider-active-copy {
transform:scale(1.0);
z-index: 999;
}
</style>

vue中 vue-awesome-swiper的使用的更多相关文章

  1. 在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效??

    在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效?? 是因为swiper提前初始化了,那时候数据还没有完全出来.这里有两种解决办法 1. 使用vue提供的$nextTic ...

  2. Vue中怎样使用swiper组件?

    我用的VS Code编译器,首先打开终端,进入项目(我是在13-vue文件夹下面的elem中使用) D:\study\web\13-vue\elem> cnpm install vue-awes ...

  3. Vue中v-for配合使用Swiper插件问题

    问题描述: 在一个页面中需要一个用swiper的轮播图,数据大概有40条,每一屏幕的swiper只显示其中的n条数据. 代码描述: <div id="app"> < ...

  4. Vue中vue.config的配置

    vue-cli 3.x 脚手架搭建完成后,项目目录中没有 vue.config.js 文件,需要手动在根目录中创建 vue.config.js. vue.config.js 是一个可选的配置文件,如果 ...

  5. vue中 Vue.set 的使用

    Vue.set(vm.items, indexOfItem, newValue) 1.vm.items :源数据:2.indexOfItem : 要修改的数据的键3.newValue : 要修改的数据 ...

  6. vue中引用swiper轮播插件

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

  7. vue中添加swiper轮播插件

    网上找了很多,最后还是官网最完整. https://github.com/surmon-china/vue-awesome-swiper 安装: 1.npm install vue-awesome-s ...

  8. vue中修改swiper样式

    问题 vue单文件组件中无法修改swiper样式. 解决 1,单文件组件中:新增一个style 不加scoped 让它最终成为全局样式.只在其中操作swiper的样式. <style lang= ...

  9. vue中引入swiper插件

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

  10. vue中的swiper element ui

    欢迎加入前端交流群交流知识&&获取视频资料:749539640 很多同学问,怎么把swiper引入到vue的脚手架里去,之前的一篇博客有提到怎么引入,但是后来感觉不怎么好,还是用一些v ...

随机推荐

  1. INTERVIEW #4

    120min, 5题.本菜鸡怒跪. 1.变身程序员 (读取时可以按行读取,直到读到空行为止,再对读取过的所有行做转换处理) 输出描述:如果能将所有的产品经理变成程序员,输出最小的分钟数:如果不能将所有 ...

  2. Vxlan L3

    拓扑图: CE1 <CE1>display current-configuration !Software Version V800R013C00SPC560B560 !Last conf ...

  3. 关于2020.04.26【MySQL导出数据到文件中的方法】的补充

    之前导出的数据文件中没有表的列名,感觉不够完整,摸索一下发现带表列名导出也是可以的,只试了导出txt和csv两种文件类型的方法.       1.导出数据到txt文件中(包含数据表列名)的方法:先选择 ...

  4. C. p-binary(二进制暴力)

    \(设最后的答案为t,那么有\) $$2^+2^+...2^+tp=n$$ \(那我们完全可以枚举这个t,判断n-tp(我们下面记为z)能刚好被t个二进制表示\) \(首先,z如果小于t,那一定无法表 ...

  5. http协议跟tcp协议的简单理解

    在说明这两个协议之前,我们先简单说一下网络的分层. 1)应用层 支持网络应用,应用协议仅仅是网络应用的一个组成部分,运行在不同主机上的进程则使用应用层协议进行通信.主要的协议有:http.ftp.te ...

  6. VS Code的安装与配置

    VS Code的安装与配置 Visual Studio Code(VS Code)是微软旗下的一个开源文本编辑器,支持Windows.macOS.Linux操作系统.数量众多.种类多样的插件极大提高了 ...

  7. HTTPS简单介绍

    在HTTP协议中有可能存在信息窃听或者身份伪装等问题,使用HTTPS协议通信机制可以有效地防止这些问题. 1 HTTP协议的缺点 通信使用明文,内容可能被窃听 不用验证通信方的身份,因此可能会遭遇伪装 ...

  8. 【Spark】这一篇或许能让你大概了解如何通过JavaAPI实现DataFrame的相关操作

    文章目录 需求概述 步骤 一.创建Maven工程并导包 二.选用第一种方法:利用反射机制配合样例类构建DataFrame 开发代码 选用第二种方法:通过StrucType配合Row构建DataFram ...

  9. Mybatis 分页:Pagehelper + 拦截器实现

    一.分页插件 Pagehelper PageHelper是Mybatis的一个分页插件,非常好用! 1.1 Spring Boot 依赖 <!-- pagehelper 分页插件--> & ...

  10. python实现登录密码重置简易操作

    需求: 1.用户输入密码正确登录 2.用户输入密码错误退出并调用函数继续输入 3.用户输入密码符合原先给定的一个值时,允许用户重置密码,并且可以用新密码登录 4.输入三次后禁止输入 虽然贴别的简单,但 ...