vue轮播,不是只有左右切换的,还有只切换src的
在项目中,初次接触vue,看了轮播插件vue-swiper等,好多都是左右切换的。个人强迫症比较严重,就要单页切换样式,就手写了一个。
功能:自动轮播,上一页下一页,点击小圆点切换大图。基本轮播要求的都实现了。。
缺点:毕竟不是专业的测试,自测是没有问题的。 当然,欢迎大家测出问题告知一声。
目前踩了两个坑:
- 数组里的图片只能放在static中;
- setInterval中的this不是只想vue,而是window!)
上代码:随意来一个组件,直接粘贴复制即可(图片自己准备)
html片段
<template>
<div id="firstPage">
<!-- 轮播 -->
<div class="sliderBox" @mouseenter="stopPlay()" @mouseleave="autoPlay()">
<img id="img" :src="url" style="width:100%;">
<div class="leftImg" @click="preImg()"><img src="../assets/left.png" style="width:100%;"></div>
<div class="rightImg" @click="nextImg()"><img src="../assets/right.png" style="width:100%;"></div>
<ul id="sliderUl" class="sliderUl">
<li @click='clickImgLi(0)' :class="{'activeImg':setIndex==3||setIndex==0}" ></li>
<li @click='clickImgLi(1)' :class="{'activeImg':setIndex==1}" ></li>
<li @click='clickImgLi(2)' :class="{'activeImg':setIndex==2}" ></li>
</ul>
</div>
<div>测试数据:{{setIndex}}</div>
</div>
</template>
js
<script>
export default {
data () {
return {
setIndex:1,
imgs: ["/static/image/lbt1.jpg","/static/image/lbt2.jpg","/static/image/lbt3.jpg"],
url:"/static/image/lbt1.jpg",
timer:""
}
},
mounted:function(){
this.autoPlay()
},
methods: {
autoPlay(){
var _this =this
_this.timer=setInterval(function(){
if(_this.setIndex ==3){
_this.setIndex=0;
}
_this.url=_this.imgs[_this.setIndex];
_this.setIndex+=1;
},4000)
},
stopPlay(){
var _this =this
clearInterval(_this.timer)
},
nextImg(){
if(this.setIndex ==3){
this.setIndex=0;
}
this.setIndex+=1;
this.url=this.imgs[this.setIndex];
},
preImg(){
if(this.setIndex ==0){
this.setIndex=3;
}
this.url=this.imgs[this.setIndex];
this.setIndex-=1;
},
clickImgLi(thisIndex){
this.setIndex=thisIndex;
this.url=this.imgs[this.setIndex];
}
}
}
</script>
css
<style scoped>
.sliderBox{width:100%;height:354px;overflow: hidden;position: relative}
.leftImg,.rightImg{width:60px;height:60px;position:absolute;top:120px;}
.leftImg{left:100px;}
.rightImg{right:100px;}
.sliderUl{position: absolute;left: 45%;bottom: 30px;width: 72px;}
.sliderUl li{width: 14px; height: 14px; float: left; margin-right: 10px; background-color: red
/*background-image: url("../assets/lx.png" );opacity: 0.5 */
}
#sliderUl .activeImg{background-color: black }
</style>
vue轮播,不是只有左右切换的,还有只切换src的的更多相关文章
- vue轮播,展示pdf
vue轮播,展示pdf 根据左侧图片格式,右侧展示相应的pdf文件与图片.(vue中不支持pdf格式,pdf文件要放在static文件里):代码如下: <template> <!-- ...
- vue轮播组件及去掉路由#
最近公司要我去实现vue知识的系统讲解,总结一番,大致需要7节课,今天大致说一下我们使用vue需要学会的基本技能.vue是一个渐进性视图渲染框架,使用vue核心是数据出发,数据一般是我们前台从后台获取 ...
- vue轮播(完整详细版)
轮播组件vue <swiper :options="swiperOption" class='swiper-box'> <swiper-slide v-f ...
- Vue轮播图插件---Vue-Awesome-Swiper
轮播图插件 Vue-Awesome-Swiper 地址:https://github.com/surmon-china/vue-awesome-swiper 安装:npm install vue-aw ...
- Android 通过ViewFlipper实现广告轮播功能并可以通过手势滑动进行广告切换
为了实现广告轮播功能,在网上找了很多方法,有的效果很好,但是代码太麻烦,并且大多是用的viewpager,总之不是很满意. 于是看了一下sdk有个控件是ViewFlipper,使用比较方便,于是尝试了 ...
- vue轮播图实现
1.先安装组件 cnpm install vue-awesome-swiper; 2.在main.js下引入文件: import VueAwsomeSwiper from 'vue-awesome-s ...
- vue轮播图插件vue-awesome-swiper的使用与组件化
不管是APP还是移动端网页开发,轮播图在大部分项目当中都是存在的,这时候如果用vue开发项目,选择一款好的插件并且封装好是很重要的 1. 推荐使用vue-awesome-swiper 安装:cnpm ...
- vue轮播图
vue开发中遇到这样一个需求实现导航栏和中间内容相结合实现页面滑动导航跟随改变的效果.看效果: 这里我用的是vue所带的插件:vue-awesome-swiper,传送门:https://www.np ...
- vue轮播插件vue-awesome-swiper
https://surmon-china.github.io/vue-awesome-swiper/ 第一步安装 npm install vue-awesome-swiper --save 第二部在m ...
随机推荐
- 【以前的空间】bzoj 1227 [SDOI2009]虔诚的墓主人
题解:hzw大神的博客说的很清楚嘛 http://hzwer.com/1941.html 朴素的做法就是每个点如果它不是墓地那么就可形成十字架的数量就是这个c(点左边的树的数量,k)*c(点右边的树的 ...
- [JSOI2010]部落划分 最小生成树
一道最小生成树经典题 由于是最靠近的两个部落尽可能远,如果我们先处理出任意两个居住点之间的距离并将其当做边,那么我们可以发现,因为在一个部落里面的边是不用计入答案的,所以应该要尽量把小边放在一个部落里 ...
- BZOJ4198 & 洛谷2168 & UOJ130:[NOI2015]荷马史诗——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4198 https://www.luogu.org/problemnew/show/P2168 ht ...
- BZOJ1149:[CTSC/APIO2007]风铃——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=1149 https://www.luogu.org/problemnew/show/P3621 sb ...
- BZOJ1834 [ZJOI2010]network 网络扩容 【最大流,费用流】
1834: [ZJOI2010]network 网络扩容 Time Limit: 3 Sec Memory Limit: 64 MB Submit: 3394 Solved: 1774 [Subm ...
- HDOJ.2072 单词数(map)
单词数 点我挑战题目 点我一起学习STL-MAP 题意分析 给出一行单词,判断这行有不同种的单词多少个,用map可以轻松解决. 代码总览 /* Title:HDOJ.2072 Author:pengw ...
- 运行Jar包程序Shell
启动: #!/bin/bash set -e JAVA_HOME=/usr/local/java# 检查是否有项目名 appName=$ if [ "$appName" == &q ...
- 在CentOS6.5 下安装并使用Java开发opencv的配置(一)
1) 安装gcc以及cmake等等乱七八糟的软件 yum install gcc yum install python yum install cmake yum groupinstall " ...
- Base class does not contain a constructor that takes '0' argument
刚刚在写一段直播室网站中的一段程序遇,突然遇到一个错误,如下 'TVLLKBLL.BaseClass' does not contain a constructor that takes 0 argu ...
- js的数据类型--数字
近期做一些项目的时候发现,自己的js基础还是不够扎实,再看一遍犀牛书,加深自己的理解和印象.所以从这篇文章开始,后面都是关于原生js的一些内容. 这篇文章,我们具体介绍一下js的数据类型其中一种. j ...