当前位置: 首页 > Web前端 > vue.js

Vue3.0项目中,如何手动封装轮播组件?

时间:2023-03-31 19:30:44 vue.js

.xtx-carousel{宽度:100%;高度:100%;最小宽度:300px;最小高度:150px;位置:相对;.carousel{&-body{宽度:100%;高度:100%;}&-item{宽度:100%;高度:100%;位置:绝对;左:0;顶部:0;不透明度:0;transition:opacity0.5slinear;&.fade{不透明度:1;z-索引:1;}img{宽度:100%;高度:100%;}}&-indicator{位置:绝对;左:0;底部:20px;z-指数:2;宽度:100%;文本对齐:居中;span{显示:内联块;宽度:12px;高度:12px;背景:rgba(0,0,0,0.2);边界半径:50%;游标:指针;~span{左边距:12px;}&.active{背景:#fff;}}}&-btn{宽度:44px;高度:44px;背景:rgba(0,0,0,.2);颜色:#fff;边界半径:50%;位置:绝对;顶部:228px;z-指数:2;44px;不透明度:0;过渡:全部0.5s;&.prev{左:20px;}&.next{右:20px;}}}&:hover{.carousel-btn{不透明度:1;}}}由于项目的特殊情况,需要手动封装一个轮播图。大致步骤:准备一个Xtx-carousel组件的基本布局,准备首页-banner组件使用Xtx-carousel组件,注册到首页。深度效果选择器会覆盖Xtx-carousel组件的默认样式。具体步骤如下:第一步:现在在src下的components文件夹下新建一个文件夹,用来打包项目的组件,方便管理。例如:library/xtx-carousel.vue轮播基础设施代码.xtx-carousel{宽度:100%;高度:100%;最小宽度:300px;最小高度:150px;位置:相对;.carousel{&-body{宽度:100%;高度:100%;}&-item{宽度:100%;高度:100%;位置:绝对;左:0;顶部:0;不透明度:0;transition:opacity0.5slinear;&.fade{不透明度:1;z-索引:1;}img{宽度:100%;高度:100%;}}&-indicator{位置:绝对;左:0;底部:20px;z-指数:2;宽度:100%;文本对齐:居中;span{显示:内联块;宽度:12px;高度:12px;背景:rgba(0,0,0,0.2);边界半径:50%;游标:指针;~span{左边距:12px;}&.active{背景:#fff;}}}&-btn{宽度:44px;高度:44px;背景:rgba(0,0,0,.2);颜色:#fff;边界半径:50%;位置:绝对;顶部:228px;z-指数:2;44px;不透明度:0;过渡:全部0.5s;&.prev{左:20px;}&.next{右:20px;}}}&:hover{.carousel-btn{不透明度:1;}}}**全局注册轮播图src/components/library/index.js**首页广告组件基础架构src/views/home/components/home-banner.vue首页使用广告组件.home-banner{width:1240px;高度:500px;位置:绝对;左:0;顶部:0;z-指数:98;.xtx-carousel{+:deep(.carousel-btn.prev){+left:270px;+}+:deep(.carousel-indicator){+padding-left:250px;}}}覆盖轮播组件样式src/views/home/components/home-banner.vue第二步:渲染封装一个接口获取轮播数据,并将数据传递给xtx-carousel组件进行内部渲染的组件。传递的数据通过索引控制类名(透明度),从而影响当前显示的图片。获取轮播数据API函数src/api/home.js获取数据,并通过给轮播图src/views/home/components/home-banner.vue完成轮播图结构渲染src/components/library/xtx-carousel.vue总结:fade是控制图片的显示,需要一个默认的index数据,渲染第一张图片,激活第一个点第三步:carousel图片-逻辑封装auto-play,暴露auto-carousel属性,auto-rotate如果设置,如果有自动播放,鼠标进出,暂停,打开指示设备切换,上一首,下一首销毁组件,清空定时器,直接上传代码:1.实现自动轮播效果2.如果有自动播放,鼠标进出,暂停,打开3.指示灯切换,上一个,下一个4.销毁组件,清理定时器总结:基本组件拆分和布局自动轮播悬停控件启动并停止手动控制开关chingdestroytimer提取相关参数(自己定义的属性,本次封装设计三个属性)sliders,autoplay,duartion