vue中 vue-awesome-swiper的使用
- 在页面开发中,经常会碰到需要轮播,滑动等需求,特别是多元素滑动,此时,要么自己写,要么网上找轮子,不过自己写,其实还是有点难度的,一般就是网上找写好的库,本文就是针对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的使用的更多相关文章
- 在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效??
在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效?? 是因为swiper提前初始化了,那时候数据还没有完全出来.这里有两种解决办法 1. 使用vue提供的$nextTic ...
- Vue中怎样使用swiper组件?
我用的VS Code编译器,首先打开终端,进入项目(我是在13-vue文件夹下面的elem中使用) D:\study\web\13-vue\elem> cnpm install vue-awes ...
- Vue中v-for配合使用Swiper插件问题
问题描述: 在一个页面中需要一个用swiper的轮播图,数据大概有40条,每一屏幕的swiper只显示其中的n条数据. 代码描述: <div id="app"> < ...
- Vue中vue.config的配置
vue-cli 3.x 脚手架搭建完成后,项目目录中没有 vue.config.js 文件,需要手动在根目录中创建 vue.config.js. vue.config.js 是一个可选的配置文件,如果 ...
- vue中 Vue.set 的使用
Vue.set(vm.items, indexOfItem, newValue) 1.vm.items :源数据:2.indexOfItem : 要修改的数据的键3.newValue : 要修改的数据 ...
- vue中引用swiper轮播插件
有时候我们需要在vue中使用轮播组件,如果是在vue组件中引入第三方组件的话,最好通过npm安装,从而进行统一安装包管理. 申明:本文所使用的是vue.2x版本. 通过npm安装插件: npm ins ...
- vue中添加swiper轮播插件
网上找了很多,最后还是官网最完整. https://github.com/surmon-china/vue-awesome-swiper 安装: 1.npm install vue-awesome-s ...
- vue中修改swiper样式
问题 vue单文件组件中无法修改swiper样式. 解决 1,单文件组件中:新增一个style 不加scoped 让它最终成为全局样式.只在其中操作swiper的样式. <style lang= ...
- vue中引入swiper插件
这里我们使用npm的方式安装swiper插件. 1.npm install vue-awesome-swiper --save 2.在main.js文件中引入文件 import Vue from 'v ...
- vue中的swiper element ui
欢迎加入前端交流群交流知识&&获取视频资料:749539640 很多同学问,怎么把swiper引入到vue的脚手架里去,之前的一篇博客有提到怎么引入,但是后来感觉不怎么好,还是用一些v ...
随机推荐
- Vim Operations
Vim有三种模式:输入模式.命令模式和末行命令模式. 输入模式用来输入文字,命令模式用来下达编排文件的操作指令,末行命令模式用来进行文件存档.离开编辑器等操作. 进入及离开 末行模式下: :w 保存当 ...
- Damaged Hard Drive and Reinstall System
0 缘由 我是ACER笔记本,电脑从桌子上重摔,之后几天可以正常使用.可是后来看完视频准备退出的时候,发现所有页面已经卡死了,内存占用已经超过了80%,任务管理器没有反应,不得已按了电源键强制关机. ...
- 解决vue渲染时闪烁{{}}的问题
原文转自: 点我 Vue页面加载时v-show设置的隐藏元素出现导致页面闪烁问题在写APP社区页面的时候在一些地方用了v-show,在刷新页面的时候就发现即便在逻辑判断为false某些元素不该显示时也 ...
- 用Eclipse开发项目,你不能不知道的快捷键
1. 编辑快捷键 编辑快捷键 介绍 psvm + Tab 生成main方法 sout + tab 生成输出语句 Ctrl+X / Ctrl + Y 删除一行 Ctrl+D 复制一行 Ctrl+/ 或 ...
- 图论--最短路--Floyd(含路径输出)
#include<bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f #define maxn 1005 int D[ma ...
- 学习vue第六节,v-if和v-show
vue 中的v-if和v-show <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- Spring Cloud Stream学习(五)入门
前言: 在了解完RabbitMQ后,再来学习SpringCloudStream就轻松很多了,SpringCloudStream现在主要支持两种消息中间件,一个是RabbitMQ,还有一个是KafK ...
- webpack搭建环境步骤
一.初始化 1.创建文件夹 2.npm init -y 二.安装webpack 和webpack-cli 1.yarn add webpack webpack-cli@3.3.10 -D (这里指定 ...
- HTTP接口测试
HTTP接口测试 1.1 get接口 请求URL http://api.nnzhp.cn/api/user/stu_info 请求方式 get 请求参数 参数名 必选 类型 说明 stu_name 是 ...
- 【FPGA篇章二】FPGA开发流程:详述每一环节的物理含义和实现目标
欢迎大家关注我的微信公众账号,支持程序媛写出更多优秀的文章 FPGA的开发流程是遵循着ASIC的开发流程发展的,发展到目前为止,FPGA的开发流程总体按照下图进行,有些步骤可能由于其在当前项目中的条件 ...