Vue3.0组件—banner轮播图(渐入渐隐效果)

简介: Vue3.0组件—banner轮播图(渐入渐隐效果)

组件产生

最近遇到一个需求,项目首页banner轮播,开始是直接使用element3.0的el-carousel走马灯效果,但是产品觉得切换太快,给用户的体验效果不好,经过多次修改产品给出切换的具体描述前一张图渐隐一个效果,后一张图渐显一个效果,然后停留几秒,于是单独写了一个banner轮播组件。


组件封装思路

主要内容:


①组件图片切换有三种方式,第一种是图片两边按钮切换,第二种是点击图片下方小横条切换,第三种是自动切换;


②子组件props的属性:listBanner(播放的图片源)、interval(图片播放的间隔时间)、 autoSwitc(是否自动播放banner)、 setHeight(banner的高度);


③给切换图片的标签添加ref,改变ref属性中的opacity,切换透明度,达到图片渐隐渐显的效果,再给对应标签样式中添加transition-duration: 1.5s;(图片透明

//上一张和下一张图片透明度切换
  const changePicture = (num) => {
   for (let i of rotationRef.value) {
    i.style.opacity = "0";//所有的图片透明度设置为0
 
   }
    //调用该方法的时候传入对应图片的索引,该图片赋透明度为1
   if (rotationRef.value.length !== 0) {    
       rotationRef.value[num].style.opacity = "1";
                                       }
  };

度切换的时间

组件思路
 
①图片源是数组形式,首先用v-for遍历图片源数组,让图片先平铺到页面中
 
②实现点击左右两边按钮切换图片,点击右边按钮,图片switchIndex++(图片的索引)累加,点击左边按钮switchIndex–累减;从右边切换图片已经遍历完的时候,switchIndex赋值为0(第一张图片的索引),从头开始播放;从左边切换时,切换到图片switchIndex等于-1的时候,switchIndex赋值为图片源数组的长度-1(最后一张图片的索引)从最后一张图片播放。
 
③定时器切换图片,先写一个定时器,默认停留时间为4000ms,在定时器中调用右边切换的方法,因为定时器是顺时针播放图片的。onMounted中调用定时器方法,在 onUnmounted中要记得销毁定时器,不然会出现一些奇怪的问题。
 
④小横条切换图片,根据图片源数组的长度循环显示小横条,点击小横条的时候传入对应横条的索引,把这个索引赋值到对应切换图片的方法中,就会显示对应的索引的图片。
 
⑤鼠标停留mouseenter在图片上停止自动播放,鼠标离开mouseleave图片自动播放。停留的时候调用
相关文章
|
6月前
|
移动开发 前端开发 JavaScript
uView LoadingIcon 加载动画
uView LoadingIcon 加载动画
104 1
|
前端开发 JavaScript
uniapp实现轮播swiper中间大两头小
uniapp实现轮播swiper中间大两头小
172 0
|
JavaScript
vue可拖拽悬浮按钮组件
vue封装一个可拖拽,贴边吸附的悬浮按钮组件。
2021 0
vue可拖拽悬浮按钮组件
uniapp遮罩层穿透问题,uview遮罩层组件,uview的actionSheet组件.鼠标穿透,uview组件u-popup遮罩滚动穿透问题
uniapp遮罩层穿透问题,uview遮罩层组件,uview的actionSheet组件.鼠标穿透,uview组件u-popup遮罩滚动穿透问题
488 0
|
3月前
Vue2竖向文字滚动
这是一个基于Vue3的文字滚动组件(TextScroll),支持自定义滚动文字数组、滚动间隔时间、展示宽度及高度等属性。该组件通过VerticalTextSlider.vue实现,提供了平滑过渡动画,并允许鼠标悬停时暂停滚动。适用于多种场景下的文字轮播需求。
Vue2竖向文字滚动
|
24天前
|
资源调度 JavaScript 前端开发
在 Vue 3 中实现流畅的 Swiper 滑动效果
本文介绍了如何在 Vue 3 项目中集成 Swiper,涵盖了从安装、基本用法到丰富的配置选项。通过简单的示例,读者将学习如何创建响应式的图片轮播,利用 Swiper 的循环、自动播放和自定义分页功能,提升用户体验。无论是简单的幻灯片还是复杂的滑块效果,Swiper 都能轻松实现,帮助开发者快速构建出美观的滑动组件。
226 0
|
3月前
|
前端开发 JavaScript
Vue2瀑布流图片展示(Waterfall)
这篇文章介绍了如何在Vue 3框架中实现瀑布流图片展示组件,提供了两种实现方式:一种使用CSS的`column-count`和`column-gap`属性,另一种使用JavaScript计算图片位置,以实现图片在多列中的动态分布。
244 1
Vue2瀑布流图片展示(Waterfall)
|
3月前
|
JavaScript API 容器
Vue3气泡卡片(Popover)
这是一个基于Vue的气泡卡片组件(Popover)介绍,提供了在线预览链接及详细API参数说明,包括maxWidth、title、content等,并支持自定义样式。
136 0
Vue3气泡卡片(Popover)
|
3月前
|
JavaScript
Vue2首页banner轮播
这篇文章介绍了如何在Vue 2框架中创建一个首页轮播图(Banner)组件,允许自定义轮播数据、切换间隔、宽度和高度,并提供了组件的实现代码和使用示例。
Vue2首页banner轮播
|
3月前
|
前端开发 JavaScript
使用Vue+CSS实现汉堡图标过渡为叉号图标,有点意思
本文分享了如何使用Vue和CSS实现一个汉堡图标在点击时过渡为叉号图标的动画效果,并提供了详细的实现代码和效果演示。
69 0
使用Vue+CSS实现汉堡图标过渡为叉号图标,有点意思
下一篇
无影云桌面