在项目中,初次接触vue,看了轮播插件vue-swiper等,好多都是左右切换的。个人强迫症比较严重,就要单页切换样式,就手写了一个。

功能:自动轮播,上一页下一页,点击小圆点切换大图。基本轮播要求的都实现了。。

缺点:毕竟不是专业的测试,自测是没有问题的。 当然,欢迎大家测出问题告知一声。

目前踩了两个坑:

  1. 数组里的图片只能放在static中;
  2. 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的的更多相关文章

  1. vue轮播,展示pdf

    vue轮播,展示pdf 根据左侧图片格式,右侧展示相应的pdf文件与图片.(vue中不支持pdf格式,pdf文件要放在static文件里):代码如下: <template> <!-- ...

  2. vue轮播组件及去掉路由#

    最近公司要我去实现vue知识的系统讲解,总结一番,大致需要7节课,今天大致说一下我们使用vue需要学会的基本技能.vue是一个渐进性视图渲染框架,使用vue核心是数据出发,数据一般是我们前台从后台获取 ...

  3. vue轮播(完整详细版)

    轮播组件vue <swiper :options="swiperOption" class='swiper-box'>     <swiper-slide v-f ...

  4. Vue轮播图插件---Vue-Awesome-Swiper

    轮播图插件 Vue-Awesome-Swiper 地址:https://github.com/surmon-china/vue-awesome-swiper 安装:npm install vue-aw ...

  5. Android 通过ViewFlipper实现广告轮播功能并可以通过手势滑动进行广告切换

    为了实现广告轮播功能,在网上找了很多方法,有的效果很好,但是代码太麻烦,并且大多是用的viewpager,总之不是很满意. 于是看了一下sdk有个控件是ViewFlipper,使用比较方便,于是尝试了 ...

  6. vue轮播图实现

    1.先安装组件 cnpm install vue-awesome-swiper; 2.在main.js下引入文件: import VueAwsomeSwiper from 'vue-awesome-s ...

  7. vue轮播图插件vue-awesome-swiper的使用与组件化

    不管是APP还是移动端网页开发,轮播图在大部分项目当中都是存在的,这时候如果用vue开发项目,选择一款好的插件并且封装好是很重要的 1. 推荐使用vue-awesome-swiper 安装:cnpm ...

  8. vue轮播图

    vue开发中遇到这样一个需求实现导航栏和中间内容相结合实现页面滑动导航跟随改变的效果.看效果: 这里我用的是vue所带的插件:vue-awesome-swiper,传送门:https://www.np ...

  9. vue轮播插件vue-awesome-swiper

    https://surmon-china.github.io/vue-awesome-swiper/ 第一步安装 npm install vue-awesome-swiper --save 第二部在m ...

随机推荐

  1. 用Matlab对数据进行线性拟合算法

    http://www.cnblogs.com/softlin/p/5965939.html 挖坑

  2. UVA.10305 Ordering Tasks (拓扑排序)

    UVA.10305 Ordering Tasks 题意分析 详解请移步 算法学习 拓扑排序(TopSort) 拓扑排序的裸题 基本方法是,indegree表示入度表,vector存后继节点.在tops ...

  3. LoadRunner中的IP欺骗

    应用程序服务器和网络设备使用IP地址来识别客户端.应用程序服务器通常会对来自同一计算机的客户端信息进行高速缓存. 网络路由器尝试对原信息和目标信息进行高速缓存以优化吞吐量.如果多个用户具有相同的IP地 ...

  4. Android JUnit test

    Android单元测试步骤 1.修改AndroidManifest.xml文件. 添加instrumentation节点.其中name是固定值,targetPackage为需要测试的类所在的包.如:  ...

  5. HDU1384 差分约束

    Intervals Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  6. http中有关缓存相关的几个字段

    转载自:http://blog.csdn.net/lifeibo/article/details/5979572 Expires.Cache-Control.Last-Modified. ETag是R ...

  7. mysql 事务,锁,与四大隔离级别

    概念 事务 原子性:事务必须是一个自动工作的单元,要么全部执行,要么全部不执行. 一致性:事务结束的时候,所有的内部数据都是正确的. 隔离性:并发多个事务时,各个事务不干涉内部数据,处理的都是另外一个 ...

  8. Beagleboneblack的MLO文件干了些啥

    Beagleboneblack在启动linux之前还有三个启动阶段: ROM code  -->  MLO  -->  u-boot --> kernel 先看看ROM code干了 ...

  9. LightOJ 1135 - Count the Multiples of 3 线段树

    http://www.lightoj.com/volume_showproblem.php?problem=1135 题意:给定两个操作,一个对区间所有元素加1,一个询问区间能被3整除的数有多少个. ...

  10. POJ 2823 Sliding Window ST RMQ

    Description An array of size n ≤ 106 is given to you. There is a sliding window of size k which is m ...