Vue2 轮播图组件 slide组件
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组件相关推荐
- Vue2 轮播图组件 原生slide组件
Vue2原生始轮播图组件,支持宽度自适应.高度设置.轮播时间设置.左右箭头按钮控制,圆点按钮切换,以及箭头.圆点按钮是否显示. <v-carousel :slideData="slid ...
- 【微信小程序】小程序实现轮播图效果--swiper组件(一步步教你如何实现)
文章目录 前言 1.引入外部链接图片资源 2.让swiper来调整适应图片的宽高 3.实现轮播效果--autoplay 总结 欢迎点赞,收藏,加关注 前言 此例子是用微信小程序组件swiper来实现轮 ...
- 微信小程序 轮播图 swiper图片组件
照着开发文档尝试,总是能有所收获.之前做Android开发,做个轮播图并不简单,用上viewpage再设置圆点,折腾一通之后还一堆bug.今天尝试微信小程序开发做轮播图,真是感动的泪流满面.废话说完了 ...
- 后台和小程序实现卡片式轮播图
营销活动中,轮播图效果是比较常见的,基于轮播图拓展的组件也很多,这里记录一下使用swiper实现卡片式轮播的过程,分为PC端和小程序端,其中PC端是Vue+typescript,小程序端是uni-ap ...
- 电商项目实战第四节: CSS3+HTML5+JS 设计案例【考拉海购网站】之【轮播图特效】
上一节:电商项目实战第三节: CSS3+HTML5+JS 设计案例[考拉海购网站]之[分类导航栏] 文章目录 [考拉海购网站]之[轮播图特效] 第一步,根据页面布局写相应的html标签 index.h ...
- 前端性能优化之jQuery按需加载轮播图
引言 关于幻灯轮播图,想必大家都不陌生,尤其是基于 jQuery 的,插件.代码网上一搜一大堆,但是真正符合自己需求的几乎没有,所以我要打造一个符合自身需求,经得起广大网民考验的 jQuery 轮播图 ...
- html轮播图速度加快,jQuery按需加载轮播图(web前端性能优化)
引言 关于幻灯轮播图,想必大家都不陌生,尤其是基于 jQuery 的,插件.代码网上一搜一大堆,但是真正符合自己需求的几乎没有,所以我要打造一个符合自身需求,经得起广大网民考验的 jQuery 轮播图 ...
- 尚硅谷VUE项目-前端项目问题总结07--产品详情页【vuex-排他操作foreach-放大镜-轮播图-兄弟组件通信$bus-购物车-路由跳转传参-路由传参+会话存储】-游客身份-节流
尚硅谷VUE项目-前端项目问题总结07---产品详情页 1.静态组件(详情页还未注册为路由组件) 2.发请求 3.vuex-获取产品详情信息 3.1放大镜 3.2 属性值[排他操作] 3.3轮播图[j ...
- ionic组件-Slides轮播图
Slides轮播图组件 ionic中的轮播图组件是基于swiper插件,所以配置slides的属性需要在swiper的API中找: Swiper触摸滑动插件:https://www.swiper.co ...
最新文章
- 推荐10款windows端实用软件,每一款都是精品!
- 如何修改Admin用户名
- java基础,没事常看看(一)类、对象、引用
- Backbone与服务器接口之RESTful
- 计算机网络知识点总结(一)-物理层
- Python中 __init__.py的作用
- Python解答力扣网站题库简单版----第三讲
- android gdb 远程调试工具,Android下用gdb远程调试办法
- Altium AD20更改原理图的连接节点颜色和连线颜色(结点颜色)
- android百度定位代码,android开发:百度地图及定位的演示代码
- 电脑一般预装access吗_我作为一名财务人员学Access的经历
- 在spring中手动编写事务
- JavaWeb实现简易新闻管理系统
- 用51单片机和esp8266实现通过手机app控制单片机小灯
- Android 简历模板
- 计算机硬盘的文件怎么删除文件,如何彻底删除文件?彻底删除硬盘数据的几种方法-电脑教程...
- 【Alpha版本】冲刺阶段——Day 1
- thinkphp整合单笔转账到支付宝账户文件配置
- 中国Linux云计算行业发展前景及趋势分析
- 2015年8月之 英雄不老