Vue2原生始轮播图组件,支持宽度自适应、高度设置、轮播时间设置、左右箭头按钮控制,圆点按钮切换,以及箭头、圆点按钮是否显示。
<v-carousel :slideData="slideData"  :height="450" :begin="0" :interval="3000" :dot="true" :arrow="true"></v-carousel>


话不多说直接上源码轮播图应用页面 \components\public\home.vue
<template><div id="home"><v-carousel :slideData="slideData"  :height="450" :begin="0" :interval="3000" :dot="true" :arrow="true"></v-carousel></div>
</template>
<script>import carousel from "./public/carousel";export default {name: 'home',data() {return {slideData:[{title:'这是一个Vue轮播图组件',src:require('../assets/pic1.jpg'),url:'/show/499'},{title:'这是一个Vue轮播图组件',src:require('../assets/pic2.jpg'),url:'/show/499'},{title:'这是一个Vue轮播图组件',src:require('../assets/pic3.jpg'),url:'/show/499'},{title:'这是一个Vue轮播图组件',src:require('../assets/pic4.jpg'),url:'/show/499'},{title:'这是一个Vue轮播图组件',src:require('../assets/pic5.jpg'),url:'/show/499'},]}},components:{'v-carousel': carousel,},methods: {},mounted() {}}
</script>
<style scoped>
</style>

轮播图组件页面 src\components\public\carousel.vue

<template><div id="carousel"><div class="carousel" ref="carousel"  v-bind:style="{height:height+'px'}"><transition-group tag="ul" class="slide clearfix"  :name="transitionName" ><li v-for="(item,index) in slideData" :key="index" v-show="index==beginValue" v-bind:style="{height:height+'px'}" ><router-link :to="item.url"><img :src="item.src"><div class="title">{{item.title}}</div></router-link></li></transition-group><div class="up" @click="up" v-show="arrow"></div><div class="next" @click="next" v-show="arrow"></div><div class="slideDot" v-show="dot"><span v-for="(item,index) in slideData" :class="{active:index==beginValue}" @click="change(index)" :key="index"></span></div></div></div>
</template><script>export default {name: "carousel",data(){return{setInterval:'',beginValue:0,transitionName:'slide'}},beforeDestroy() {// 组件销毁前,清除监听器clearInterval(this.setInterval);},methods:{change(key){if(key>(this.slideData.length-1)){key=0;}if(key<0){key=this.slideData.length-1;}this.beginValue=key;},autoPlay(){//console.log(this.$refs.carousel.getBoundingClientRect().width);this.transitionName='slide';this.beginValue++if(this.beginValue>=this.slideData.length){this.beginValue=0;return;}},play(){this.setInterval=setInterval(this.autoPlay,this.interval)},mouseOver(){ //鼠标进入//console.log('over')clearInterval(this.setInterval)},mouseOut(){ //鼠标离开//console.log('out')this.play()},up(){ //上一页--this.beginValue;this.transitionName='slideBack';this.change(this.beginValue);},next(){ //下一页++this.beginValue;this.transitionName='slide';this.change(this.beginValue);}},mounted(){var box = this.$refs.carousel; //监听对象box.addEventListener('mouseover',()=>{this.mouseOver();})box.addEventListener('mouseout',()=>{this.mouseOut();})this.beginValue=this.begin;this.play();},props:{height:{type: Number,default: 600},dot:{type: Boolean,default: true},arrow:{type: Boolean,default: true},interval:{type: Number,default: 5000},begin:{type: Number,default: 0},slideData:{type: Array,default: function () {return [];}}}}
</script><style scoped>.slide{position: relative;margin: 0;padding: 0; overflow: hidden;width: 100%; height:450px;}.slide li{list-style: none;position: absolute;width: 100%; height:450px;}.slide li img{width: 100%; height:450px;cursor:pointer}.slide li .title{position: absolute; left:0; bottom: 0; padding: 10px 20px; width: 100%; background: rgba(0,0,0,.35);color: #fff;font-size: larger; text-align: center}.slideDot{position: absolute;z-index: 999; bottom: 60px;right:15px; }.slideDot span{display: inline-block; width: 30px; height: 7px; background:rgba(255,255,255,.65); margin-left: 5px;}.slideDot span.active{background:rgba(255,255,255,1);}.up,.next{position: absolute; left:0; top: 50%; margin-top: -32px; cursor: pointer;  width:64px;height: 64px;background-repeat: no-repeat;background-position: 50% 50%;}.up{background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABSklEQVRoQ9Xa220CMRCF4XMqIB0kdJASSCfpIDWlAzqAElIC6SBUMNFIywsCtB7PjX336v/k3YexTBQ+IvIC4AvAN8mTJYWWRR5rROQdwAGAIk4kt5b3lgCu4rX7l+TbUwBuxJ8B7Ej+tAd4xys47ROKiE8DRMWnACLjwwHR8aGAjPgwQFZ8CCAz3h2QHe8KqIh3A1TFuwAq46cB1fFTgA7xZkCXeBOgU/wwoFv8EKBj/GpA1/gRgJ4e7JaZdWqGtcy9j9asGilFRM9sXpcX/QH4sA7hVQA9wzkC2HRDrNoBjV7+g3aI1YCuiCFAR8QwoBvCBOiEMAO6IKYAHRDTgGqEC6AS4QaoQrgCKhDugGxECCATEQbIQoQCMhDhgGhECiASkQaIQqQCIhDpgDuI57orcQNxJqmXPoafkh24VIqIXvD4BLC3HtP8A6pfGkB3vbyXAAAAAElFTkSuQmCC");}.next{left: auto;right:0;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABOElEQVRoQ9Xa0W0CQQyEYU9JqShQAXSSEgIdUAIlQAd04milezgdOiHZ4/GGN5C8/N/u060Olvy4+8nMngDuyaVC4whNLUPufjazn+XrEcAls15klgkY/y9HpACj2N3Hrn+vdk+KSAO6ERRAJ4IG6EJQAR0IOkCNKAEoEWUAFaIUoECUA6oREkAlQgaoQkgBFQg5gI1oATARbQAWohXAQLQDsogpABnENIAoYirADuILwGPvxmJGwK+ZHVbB/wfg7tv4K4A15u0gpjmBSPzQTAGIxk8ByMS3A7LxrQBGfBuAFd8CYMbLAex4KaAiXgaoipcAKuPLAdXxpQBFfBlAFV8CUMbTAep4KqAjngboiqcAOuPTgM27EmO9j8+we7cL0d9Tj5QbgDw+fQLLPc54Y+UF4BbdxczcH9Le8DFn39OvAAAAAElFTkSuQmCC");}.up:hover{background-color: rgba(0,0,0,.3)}.next:hover{background-color: rgba(0,0,0,.3)}/*进入过渡生效时的状态*/.slide-enter-active{transform:translateX(0);transition: all 1s ease;}/*进入开始状态*/.slide-enter{transform:translateX(-100%);}/*离开过渡生效时的状态*/.slide-leave-active{transform:translateX(100%);transition: all 1s ease;}/*离开过渡的开始状态*/.slide-leave{transform:translateX(0);}/*进入过渡生效时的状态*/.slideBack-enter-active{transform:translateX(0);transition: all 1s ease;}/*进入开始状态*/.slideBack-enter{transform:translateX(100%);}/*离开过渡生效时的状态*/.slideBack-leave-active{transform:translateX(-100%);transition: all 1s ease;}/*离开过渡的开始状态*/.slideBack-leave{transform:translateX(0);}</style>

  

转载于:https://www.cnblogs.com/gmajip/p/9113824.html

Vue2 轮播图组件 slide组件相关推荐

  1. Vue2 轮播图组件 原生slide组件

    Vue2原生始轮播图组件,支持宽度自适应.高度设置.轮播时间设置.左右箭头按钮控制,圆点按钮切换,以及箭头.圆点按钮是否显示. <v-carousel :slideData="slid ...

  2. 【微信小程序】小程序实现轮播图效果--swiper组件(一步步教你如何实现)

    文章目录 前言 1.引入外部链接图片资源 2.让swiper来调整适应图片的宽高 3.实现轮播效果--autoplay 总结 欢迎点赞,收藏,加关注 前言 此例子是用微信小程序组件swiper来实现轮 ...

  3. 微信小程序 轮播图 swiper图片组件

    照着开发文档尝试,总是能有所收获.之前做Android开发,做个轮播图并不简单,用上viewpage再设置圆点,折腾一通之后还一堆bug.今天尝试微信小程序开发做轮播图,真是感动的泪流满面.废话说完了 ...

  4. 后台和小程序实现卡片式轮播图

    营销活动中,轮播图效果是比较常见的,基于轮播图拓展的组件也很多,这里记录一下使用swiper实现卡片式轮播的过程,分为PC端和小程序端,其中PC端是Vue+typescript,小程序端是uni-ap ...

  5. 电商项目实战第四节: CSS3+HTML5+JS 设计案例【考拉海购网站】之【轮播图特效】

    上一节:电商项目实战第三节: CSS3+HTML5+JS 设计案例[考拉海购网站]之[分类导航栏] 文章目录 [考拉海购网站]之[轮播图特效] 第一步,根据页面布局写相应的html标签 index.h ...

  6. 前端性能优化之jQuery按需加载轮播图

    引言 关于幻灯轮播图,想必大家都不陌生,尤其是基于 jQuery 的,插件.代码网上一搜一大堆,但是真正符合自己需求的几乎没有,所以我要打造一个符合自身需求,经得起广大网民考验的 jQuery 轮播图 ...

  7. html轮播图速度加快,jQuery按需加载轮播图(web前端性能优化)

    引言 关于幻灯轮播图,想必大家都不陌生,尤其是基于 jQuery 的,插件.代码网上一搜一大堆,但是真正符合自己需求的几乎没有,所以我要打造一个符合自身需求,经得起广大网民考验的 jQuery 轮播图 ...

  8. 尚硅谷VUE项目-前端项目问题总结07--产品详情页【vuex-排他操作foreach-放大镜-轮播图-兄弟组件通信$bus-购物车-路由跳转传参-路由传参+会话存储】-游客身份-节流

    尚硅谷VUE项目-前端项目问题总结07---产品详情页 1.静态组件(详情页还未注册为路由组件) 2.发请求 3.vuex-获取产品详情信息 3.1放大镜 3.2 属性值[排他操作] 3.3轮播图[j ...

  9. ionic组件-Slides轮播图

    Slides轮播图组件 ionic中的轮播图组件是基于swiper插件,所以配置slides的属性需要在swiper的API中找: Swiper触摸滑动插件:https://www.swiper.co ...

最新文章

  1. 推荐10款windows端实用软件,每一款都是精品!
  2. 如何修改Admin用户名
  3. java基础,没事常看看(一)类、对象、引用
  4. Backbone与服务器接口之RESTful
  5. 计算机网络知识点总结(一)-物理层
  6. Python中 __init__.py的作用
  7. Python解答力扣网站题库简单版----第三讲
  8. android gdb 远程调试工具,Android下用gdb远程调试办法
  9. Altium AD20更改原理图的连接节点颜色和连线颜色(结点颜色)
  10. android百度定位代码,android开发:百度地图及定位的演示代码
  11. 电脑一般预装access吗_我作为一名财务人员学Access的经历
  12. 在spring中手动编写事务
  13. JavaWeb实现简易新闻管理系统
  14. 用51单片机和esp8266实现通过手机app控制单片机小灯
  15. Android 简历模板
  16. 计算机硬盘的文件怎么删除文件,如何彻底删除文件?彻底删除硬盘数据的几种方法-电脑教程...
  17. 【Alpha版本】冲刺阶段——Day 1
  18. thinkphp整合单笔转账到支付宝账户文件配置
  19. 中国Linux云计算行业发展前景及趋势分析
  20. 2015年8月之 英雄不老

热门文章

  1. JAVA——jdk8的下载与安装,win10下配置JDK环境变量
  2. CCF认证2019031-小中大
  3. SVN同步时忽略特定文件或文件夹
  4. 专业软件测试工程师必备之软件测试要学什么技能?
  5. tar 慢 加快_加快慢的Outlook 2007
  6. 基于Caret和RandomForest包进行随机森林分析的一般步骤 (1)
  7. 千分位、两位小数的展示
  8. 搭建ngrok服务器
  9. css关于控制div靠左或靠右的排版布局
  10. Hive——hive安装