Debug-028-el-carousel走马灯-当展示图片为2的问题处理
前言:
el-carousel走马灯又是给elementui填坑的一天。el-carousel走马灯其实类似小程序中的轮播图。这里担心涉及版权问题就不贴项目中的图了。简单阐述一下问题:正常使用el-carousel时,如果图片数量大于等于3时,可以定时自动顺序播放;但是当图片只有两张时,自动播放时这个轮播图就不会再循环播放,而是左右来回切换,各位小伙伴可以下去试一下。
算了还是举一个小小的例子方便大家看一下:
两张图时:
el-carousel-两个
三张图时:
el-carousel-三个
其他方面没有任何问题,直接参考官方文档即可。这里直接给出一个常规思路:图片内容是需要存放在数组中的,这里在原有的两张基础上再给出两张图一样的图片,也就是在原来[img1,img2]的基础上变成[img1,img2,img1,img2],这样就能循环轮播了。想到这一点还是比较妙的,但是轮播图内部下方会出现4个切换的按钮,这就相当于告诉别人我这里有四张图片。那么接下来就是要把后两张图片的切换按钮隐藏掉即可(这里要注意隐藏时机和样式的处理),这样视觉上就会认为是两张图在滚动,也解决了不能循环的问题。如下图画圈所示:
//这里是基于vue3+ts写的,如果代码看不懂,就先理解思路,然后直接在自己项目中先尝试。//js部分
const isThree = ref(false)
const isFour = ref(false)// 这里轮播图由于仅展示两张图,el-carousel在只有两张图的时候会左右切换,不会循环切换,故添加自定义样式
function changeCarousel(val:any) {console.log('val', val)if (val === 2) {isThree.value = trueisFour.value = false} else if (val === 3) {isThree.value = falseisFour.value = true} else {isThree.value = falseisFour.value = false}
}// html<div class="right-carousel" :class="[{ Box3: isThree }, { Box4: isFour }]"><el-carousel :interval="5000" @change="changeCarousel"><el-carousel-item v-for="item in introImgs" :key="item"><img :src="item"></el-carousel-item></el-carousel></div>//css//先将复制出来的3,4两个轮播图的下标切换按钮隐藏,这一点是必须的:deep(.el-carousel__indicators) {& > li:nth-child(3),& > li:nth-child(4) {display: none;}}//切换到第三张图的时候,改变第一张图的下标切换按钮的颜色,让用户感觉是切换回了第一张图.Box3{:deep(.el-carousel__indicators) {& > li:nth-child(1) {// background: #d4c1c1 !important;button{opacity: .8 !important; //透明度}}}}//切换到第四张图的时候,改变第二张图的下标切换按钮的颜色,让用户感觉是切换回了第二张图.Box4{:deep(.el-carousel__indicators) {& > li:nth-child(2) {button{opacity: .8 !important; //透明度}}}}
这里也给大家推荐一篇类似的文章,他也是用的这种方法,但是没有处理下方切换按钮的颜色,仔细看还是能看出来的。我在他的基础上调整了切换按钮的透明度,算是一个优化吧:
解决 element ui Carousel跑马灯组件,el-carousel-item数量为2时,组件循环方向一左一右的问题_el-carousel-item数量为2时,组件循环方向一左一右的问题-CSDN博客文章浏览阅读2.5k次,点赞2次,收藏2次。在项目中有些数据需要轮播展示时,使用Carousel组件非常合适,可以在页面内挂载很多内容节点,平常组件的循环显示方向默认是往右边滑动,但是在循环数量为2时,循环显示方向就会呈现一左一右,对于部分强迫症客户来说体验感就不是很好,如下图。首先获取要循环的数据的长度length,如果为2时,复制一次,使其成为长度length为4的数组,然后将Carousel组件的indicators(下标显示器)多复制的给隐藏(原本长度为2,现在为4,就隐藏第3个和第4个)完整代码如下,可直接复制使用。_el-carousel-item数量为2时,组件循环方向一左一右的问题https://blog.csdn.net/Working_hard_111/article/details/131833892 备注:当然肯定还有别的思路,这里时间有限不再尝试。比如暴力一点,把下方切换按钮全部隐藏掉,反正也只有来个两张图,要不要切换都无所谓:
再比如考虑一下,为什么当图片是两张的时候组件不再循环播放。可以调研一下
小结:
当数量大于等于三时都是没有问题的正常循环播放,只有在两张的时候会出现这种情况。如果要求不高的话也无所谓,但是这个轮播图我们业务里是使用在大屏展示中的,左右播放确实效果不佳。如果把它当一个问题的话,也比较适合前端练练css,毕竟身为前端还是需要一些强迫症的,而且这也是前端区别于后端的很重要的一块内容。
相关文章:

Debug-028-el-carousel走马灯-当展示图片为2的问题处理
前言: el-carousel走马灯又是给elementui填坑的一天。el-carousel走马灯其实类似小程序中的轮播图。这里担心涉及版权问题就不贴项目中的图了。简单阐述一下问题:正常使用el-carousel时,如果图片数量大于等于3时,可以定时自动顺序…...

TapData 知识库 | 一文吃透数据整合(Data Consolidation)
顾名思义,数据整合指的是将不同来源的数据汇集在一起,并将其集中存储于一个统一的数据平台。数据整合使用户能够通过单一访问入口获取数据,进而推动数据洞察的生成与分析。 数据通常被简单地看作信息的集合,仿佛默认每个数据单元在…...

MySQL数据的导出
【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…...

微服务--OpenFeign【重点】
如果哪天 我们硬编码写的接口变了,只要写过该接口的 都要改,太麻烦了, 所以 就用 OpenFeign 来解决这个麻烦 了解: SimpleClientHttpRequestFactory和 HttpComponentsClientHttpRequestFactory 都是Spring框架中用于创建ClientH…...

【力扣打卡系列】滑动窗口与双指针(两数之和)
坚持按题型打卡&刷&梳理力扣算法题系列,语言为go,Day1 两数之和 题目描述 解题思路 采用哈希表 将nums[i] nums[j] target 转化成 nums[i] target - nums[j]去思考新建一个map来存储,键为值(左边的)&#…...

蚂蚁华东师范大学:从零开始学习定义和解决一般优化问题LLMOPT
🎯 推荐指数:🌟🌟🌟 📖 title:LLMOPT: Learning to Define and Solve General Optimization Problems from Scratch 🔥 code:https://github.com/caigaojiang/LLMOPT &am…...

价格游戏的终章:品牌如何在通货膨胀时代智取市场
来源:The era of price-led profit growth is coming to an end (marketingweek.com) 近年来,通货膨胀促使许多品牌通过提价来提升利润,而销量几乎没有受到太大影响。然而,随着通货膨胀放缓,继续提价的策略可能会吸引…...

CVTE Android面试题及参考答案
Activity 的生命周期 Activity 的生命周期分为以下几个主要状态: onCreate ():在 Activity 第一次被创建的时候调用。通常在这个方法中进行一些初始化操作,如设置布局、初始化成员变量等。这是 Activity 进入可见状态的第一步。onStart ():当 Activity 即将对用户可见的时候…...

Docker实战:从入门到进阶
Docker实战:从入门到进阶 引言 Docker是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的依赖包到一个可移植的容器中,然后发布到任何支持Docker的平台上。本文将通过实战和应用举例,带领大家深入了解Docker的强大…...

Jupyter Notebook汉化(中文版)
原版jupyter notebook是英文的,想要将其改为中文 在jupyter notebook所在环境输入以下命令 pip install jupyterlab-language-pack-zh-CN打开jupyter notebook,在设置语言中将其设置为中文...

C#的小数位保留以及四舍五入
C#使用Math.Round("数值","保留位","保留方式")进行小数位保留以及四舍五入 //1.MidpointRounding.ToEven(四舍六入五成双) //当保留小数位后一位为0~4时,舍去末位 var x1 Math.Round(1.124, 2, MidpointRo…...

KNNImputer
KNNImputer实例是指在使用Python的scikit-learn库时,通过sklearn.impute.KNNImputer类创建的一个对象,该对象专门用于处理数据集中的缺失值。KNNImputer采用K-近邻(K-Nearest Neighbors,KNN)算法来估算并填充这些缺失值…...

RHCE例行性工作笔记
1、单一执行的例行性工作 单一执行的例行性工作: 仅处理执行一次就结束了 at命令的工作过程 /etc/at.allow ,写在该文件的人可以使用 at 命令 /etc/at.deny ,黑名单 两个文件如果都不存在,只有 root 能使用 #at 工作调度对应的…...

ros2 action server示例、拓展、练习
注意:以下代码全部由ai生成,没有大问题,运用时需根据报错逐步调试 action server示例 将 goal、result 和 feedback 作为类的成员变量的 C 示例代码: 示例代码 #include "rclcpp/rclcpp.hpp" #include "rclcpp…...

【Go语言】安装及使用基础教程
文章目录 1. 下载安装Go官网安装使用 Homebrew 安装 (Mac)创建工作目录 (Workspace)设置环境变量通过 VSCode 扩展商店安装 Go 插件处理权限问题 2. Hello, World 示例3. 语法基础变量声明常量数组切片(Slice)Map(集合)控制结构fo…...

【大模型】3分钟了解提示(Prompt)工程、检索增强(RAG)和微调
我们先看下面这个图: 简单理解大模型是通过海量训练数据训练出来的,它的能力非常强,但是有时候会给出错误的回答。那产生错误的原因可能是什么呢? 1.提问错误(提示工程) 在我们提问的方式不对的情况下&a…...

太速科技-509-基于XCVU13P的4路QSFP28光纤PCIeX16收发卡
基于XCVU13P的4路QSFP28光纤PCIeX16收发卡 一、板卡概述 基于XCVU13P的4路QSFP28光纤PCIeX16收发卡。该板卡要求符合PCIe 3.0标准,包含一片XCVU13P-2FLGA2014I、4组64-bit/8GB DDR4;4路QSFP28 4X光纤,每路光纤支持4X25Gbps&#…...

C#从零开始学习(基本语法概念)(2)
深入C# 本章所有的代码都放在 https://github.com/hikinazimi/head-first-Csharp 控制台项目结构 每个C#程序采用同样的方式组织,命名空间,类和方法 using System;namespace helloworld//命名空间 {class Program//类{static void Main(string[] args)//程序入口{Console.Writ…...

基于SSM+微信小程序的家庭记账本管理系统(家庭1)
👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 1、管理员端功能有首页、个人中心、用户管理,消费详情管理、收入详情管理、系统管理等。 2、用户端功能有首页、消费详情、收入详情、论坛信息、我的等功能。 2、项目技术 …...

MEMC功能详解
文章目录 MEMC的工作原理:优点:缺点:适用场景:1. Deblur(去模糊)2. Dejudder(去抖动)总结两者区别: MEMC(Motion Estimation and Motion Compensation&#x…...

C++ | Leetcode C++题解之第493题翻转对
题目: 题解: class BIT { private:vector<int> tree;int n;public:BIT(int _n) : n(_n), tree(_n 1) {}static constexpr int lowbit(int x) {return x & (-x);}void update(int x, int d) {while (x < n) {tree[x] d;x lowbit(x);}}in…...

Git 修改分支名
在Git中修改分支名称,可以使用以下步骤: 切换到要重命名分支之外的其他分支: git checkout <其他分支名>重命名本地分支: git branch -m <旧分支名> <新分支名>如果需要删除远程的旧分支并创建新分支࿱…...

[自动化测试:Selenium]:环境部署和Webdriver的使用
文章目录 修改安装源打开Python Packages。点击梅花按钮。在弹出的对话框中,填入Name(随便填),Repository URL,选择下列的源,一般先选择清华源按OK确认。配置完成 安装seleniumFile→Settings→Project&…...

51单片机——OLED显示图片
取模软件:链接:https://pan.baidu.com/s/1UcrbS7nU4bsawNxsaaULfQ 提取码:gclc 1、如果图片大小和格式不合适,可以先用Img2Lcd软件进行调整图片大小,一般取模软件使用的是.bmp图片,可以进行输出.bmp格式。软件界面如下࿱…...

Gin 协程mysql客户端
一、Gin框架 mysql配置 这里选择yaml文件配置 二、配置读取 viper 读取yaml文件中对应配置 三、mysql 的协程客户端 文件位置 package databaseimport ("database/sql""fmt""github.com/spf13/viper""log""net/http"&quo…...

量子门电路开销——T门、clifford门、toffoli门、fredkin门
在量子计算中,T门的成本比Clifford门高出很多倍的原因与量子计算中纠错的实现、物理门操作的复杂性以及容错量子计算架构中的成本评估有关。以下是几个关键原因,解释了为什么 T 门的成本在量子计算中远远高于 Clifford 门: 1. T 门和 Cliffo…...

C++之《剑指offer》学习记录(1):类型转换关键字
笔者最近在找工作时,无意间读到了一本名为《剑指offer》的书,粗略翻阅了一下,感觉这将会是一本能让我不再苦恼于笔试和面试“手搓代码”的书。故笔者写下该系列博客记录自己的学习历程,希望能和这本书的读者朋友们一起交流学习心得…...

【Linux】平台设备驱动
在设备驱动模型中,引入总线的概念可以对驱动代码和设备信息进行分离。但是驱动中总线的概念是软件层面的一种抽象,与我们SOC中物理总线的概念并不严格相等。 物理总线:芯片与各个功能外设之间传送信息的公共通信干线,其中又包括数…...

【Linux】命令行参数环境变量
文章目录 命令行参数环境变量环境变量的概念常见环境变量查看环境变量测试PATH修改PATH HOME和环境变量相关的命令环境变量是如何被组织的通过系统调用putenv和getenv获取或设置环境变量环境变量通常是具有全局属性的普通变量与环境变量的区别 命令行参数 main函数有三种形式&…...

libaom 源码分析:twopass_encoder.c 文件
libaom libaom 是 AOMedia(开放媒体联盟)开发的一个开源视频编解码器库,它是 AV1 视频压缩格式的参考实现,并被广泛用于多种生产系统中。libaom 支持多种功能,包括可扩展视频编码(SVC)、实时通信…...