在项目中,初次接触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. 923c C. Perfect Security

    Trie树. 要求字典序最小,所以由前到后贪心的选择.建一个trie树维护b数列. #include<cstdio> #include<algorithm> #include& ...

  2. BZOJ4355:Play with sequence——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4355 维护一个长度为N的序列a,现在有三种操作: 1)给出参数U,V,C,将a[U],a[U+1] ...

  3. BZOJ4873:[SHOI2017]寿司餐厅——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=4873 https://www.luogu.org/problemnew/show/P3749 简要题 ...

  4. 我的ACM参赛故事

    从我接触程序竞赛到现在应该有十多年了,单说ACM竞赛,从第一次非正式参赛到现在也差不多有7年多的样子.有太多的故事,想说的话,却一直没能有机会写下来.一方面是自己忙,一方面也是自己懒.所以很感谢能有人 ...

  5. Codeforces Round #396 (Div. 2) A B C D 水 trick dp 并查集

    A. Mahmoud and Longest Uncommon Subsequence time limit per test 2 seconds memory limit per test 256 ...

  6. uboot两阶段代码分析

    1.启动过程特征总结(1)第一阶段为汇编阶段(start.s).第二阶段为C阶段(board.c中的start_armboot 函数)(2)第一阶段在SRAM中.第二阶段在DRAM中(3)第一阶段注重 ...

  7. WPF DataGrid、ListView 简单绑定

    DataGrid运行效果: xaml 代码: DataGridName= dtgData ItemsSource= {Binding} AutoGenerateColumns= False DataG ...

  8. (转)python编码问题

    时不时总是会碰到令人头疼的编码问题,这里推荐一篇决定好文,需反复诵读之: http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html . . ...

  9. [C#] 类型学习笔记一:CLR中的类型,装箱和拆箱

    在学习.NET的时候,因为一些疑问,让我打算把.NET的类型篇做一个总结.总结以三篇博文的形式呈现. 这篇博文,作为三篇博文的第一篇,主要探讨了.NET Framework中的基本类型,以及这些类型一 ...

  10. IntelliJ IDEA 热加载

    修改java文件后 win按:Ctrl+Shift+F9 mac按:cmd+Shift+F9 tomcat-maven-plugin 启动的项目也用这个快捷键热加载