美文网首页
轮播图(vue中)

轮播图(vue中)

作者: 凤凰的小迷妹 | 来源:发表于2019-07-16 16:52 被阅读0次

<template>
<div class="carousel-wrap carousel-height" id="carousel">
<transition-group tag="ul" class='slide-ul' name="list">
<li v-for="(list,index) in slideList" v-bind:key="list.id" v-show="index===currentIndex" @mouseenter="stop" @mouseleave="go">
<a href="#" >
<img :src="list.image">
</a>
</li>
</transition-group>
<div class="carousel-items">
<span v-for="(item,index) in slideList.length" :class="{'active':index===currentIndex}" @mouseover="change(index)" :key="index"></span>
</div>
</div>
</template>
<script>
export default {
data() {
return{
currentIndex:0,//图片索引
timer: '',
slideList:[
{"id":0,"image":require('../../assets/1.jpg')} ,
{"id":1,"image":require('../../assets/2.jpg')} ,
{"id":2,"image":require('../../assets/3.jpg')} ,
{"id":3,"image":require('../../assets/4.jpg')} ,
{"id":4,"image":require('../../assets/5.jpg')} ,
]
}
},
methods:{
go() {
this.timer = setInterval(() => {
this.autoPlay()
}, 4000)
},
stop() {
clearInterval(this.timer)
this.timer = null
},
change(index) {
this.currentIndex = index
},
autoPlay() {
this.currentIndex++
if (this.currentIndex > this.slideList.length - 1) {
this.currentIndex = 0
}
}
},
mounted() {
//在DOM加载完成后,下个tick中开始轮播
this.$nextTick(() => {
this.timer = setInterval(() => {
this.autoPlay()
}, 4000)
})
}
}
</script>
<style lang="scss" scoped>

.carousel-wrap {
position: relative;
height:30rem;
width: 100%;
overflow: hidden;
// 删除
background-color: #fff;
}
@media screen and (max-width:768px){
.carousel-height{
height:10rem;
}
}
@media screen and (max-width:992px) and (min-width: 768px){
.carousel-height{
height:15rem;
}
}
.slide-ul {
width: 100%;
height: 100%;
li {
position: absolute;
width: 100%;
height: 100%;
img {
width: 100%;
height: 100%;
}
}
}

.carousel-items {
position: absolute;
z-index: 10;
top: 90%;
width: 100%;
margin: 0 auto;
text-align: center;
font-size: 0;
span {
display: inline-block;
height: 0.4rem;
width: 2rem;
margin: 0 0.3rem;
background-color: #b2b2b2;
cursor: pointer;
}
.active {
background-color: #949090;
}
}
.list-enter-to {
transition: all 1s ease;
transform: translateX(0);
}

.list-leave-active {
transition: all 1s ease;
transform: translateX(-100%)
}

.list-enter {
transform: translateX(100%)
}

.list-leave {
transform: translateX(0)
}
</style>

相关文章

  • 2019-04-28

    vue 轮播图组件

  • vue swiper插件使用

    vue-awesome-swiper的使用 1、安装 2、在vue中引入 3、进入轮播图组件中

  • vue-awesome-swiper的使用

    vue-awesome-swiper的使用 1、安装 2、在vue中引入 3、进入轮播图组件中

  • 轮播图(vue中)

    export default {data()...

  • 用vue写一个轮播图效果

    轮播图在网站中几乎无处不在,占用地方少,交互性好。今天就来聊聊如何用vue实现一个轮播效果。 一、原理在轮播图数组...

  • VUE 脚手架项目中轮播图的实现

    VUE项目中轮播图的实现 vue-awesome-swiper ——依赖插件vue-awesome-swiper...

  • vue中swiper的使用(轮播失效)

    在使用vue写swiper轮播图的时候,有时会发生轮播图不生效的问题,这是因为页面中JS执行的顺序问题,这时swi...

  • vue过渡效果-轮播图

    为了在vue里做个轮播图,找遍了网页博客,终于找到一个看的懂得文章具体轮播图的做法参考原文地址:点击这里 vue过...

  • vue中实现轮播图

    Vue 实现一个简单的轮播图,如图所示: 包括三个部分: 分别用 标签实现 1.图片:我们应该根据数据渲染...

  • vue中的轮播图

    1、首先要npm i swiper 2、在组件内引入swiper的js和css 引入js:---- import ...

网友评论

      本文标题:轮播图(vue中)

      本文链接:https://www.haomeiwen.com/subject/lgvtlctx.html