实现异形(拱形)轮播图

news2024/9/21 20:48:47

项目需要实现如上图所示的轮播图。
实现思路:
1.项目引入使用普通轮播图。
2.根据轮播图个数,动态给可视范围的第一个轮播图和最后一个轮播图添加样式。
代码实现:
经调研,使用slick轮播图(官网地址  https://kenwheeler.github.io/slick/)
1.点击下载插件包

将其放到staic文件夹下,在vue项目中,index.html文件中引入js和css。

注意:还需要额外引入jquery。
2.页面使用。
html:

<div id="autoplayClass1">
     <div :class="['slideItemWrapper', 'slideItemWrapper'+index , 'slideItemWrapperCenter']" v-for="(item,index) in lunbo1List"  :key="index"   :title="item.fileName"><img :src="hAction + item.filePath" class="inage  inagex" /></div>
 </div>

lunbo1List为后端返回的图片列表。
js:

 autoPlaySlide(){
 //slideItemWrapperFirst为第一个轮播图的样式,slideItemWrapperLast为最后一个轮播图的样式。
 //slideItemWrapperCenter为默认轮播图样式
      $(".slideItemWrapper0").addClass('slideItemWrapperFirst')
      $(".slideItemWrapper4").addClass('slideItemWrapperLast')
 //轮播设置
       $('#autoplayClass1').slick({
                slidesToShow: 5,    
                slidesToScroll: 1,  //每次轮播个数
                autoplay: true,
                autoplaySpeed: 2000,
      });
 //轮播change时,样式动态添加      
      $('#autoplayClass1').on('beforeChange', function (event, slick, currentSlide, nextSlide) {
                $('.slideItemWrapper' + nextSlide).removeClass('slideItemWrapperCenter')
                $('.slideItemWrapper' + nextSlide).addClass('slideItemWrapperFirst')
                let lastRotate = nextSlide + 4
                if (lastRotate > lunboList.length-1) {
                    lastRotate = lastRotate - lunboList.length
                }
                 $('.slideItemWrapper' + lastRotate).removeClass('slideItemWrapperCenter')
                $(".slideItemWrapper" + lastRotate).addClass('slideItemWrapperLast')


                $(".slideItemWrapper" + currentSlide).removeClass('slideItemWrapperFirst')
                 $('.slideItemWrapper' + currentSlide).addClass('slideItemWrapperCenter')
                let lastRotatel = currentSlide + 4
                if (lastRotatel > lunboList.length-1) {
                    lastRotatel = lastRotatel - lunboList.length
                }
                $(".slideItemWrapper" + lastRotatel).removeClass('slideItemWrapperLast')
                $('.slideItemWrapper' + lastRotatel).addClass('slideItemWrapperCenter')
           
            });
        },

css:实现异性样式

   //最左侧图片形状处理
        .slideItemWrapperFirst {
            position: relative;
            width: 17vw;
            /* 或你需要的宽度 */
            height: 20vh;
            /* 或你需要的高度 */
            display: inline-block;
        }

        .slideItemWrapperFirst::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            //   background: white; /* 这是图片背景色,根据实际情况调整 */
            z-index: 1;
        }

        .slideItemWrapperFirst img {
            width: 14.6;
            height: 15.5vh;
            position: relative;
            z-index: 2;
        }

        .slideItemWrapperFirst img {
            clip-path: polygon(0 0, calc(100%) 0, calc(100%) calc(100% - 3.5vh), 0 calc(100%));
            /* 10px 是缺失角的宽度,根据需求调整 */
        }

//最右侧图片形状处理
        .slideItemWrapperLast {
            position: relative;
            width: 17vw;
            height: 20vh;
            display: inline-block;
        }

        .slideItemWrapperLast::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            //   background: white; /* 这是图片背景色,根据实际情况调整 */
            z-index: 1;
        }

        .slideItemWrapperLast img {
            width: 14.6;
            height: 15.5vh;
            position: relative;
            z-index: 2;
        }
        //关键代码clip-path::
        .slideItemWrapperLast img {
            clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - 3.5vh));
            /* 10px 是缺失角的宽度,根据需求调整 */
        }

如何页面有多个轮播图同时使用,需要销毁的话:
 $('#autoplayClass1').slick('unslick')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2043553.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

经纬恒润再度受邀参加中国一汽红旗供应链创新科技展

中国一汽红旗“技领时代&#xff0c;智创未来”第六届供应链创新科技展在长春一汽总部旗境空间隆重举行&#xff0c;经纬恒润作为中国一汽战略合作伙伴及理事会成员受邀出席&#xff0c;携最新汽车电子研发成果亮相科技展&#xff0c;副总经理范成建博士受邀出席本次开幕式。 本…

电子电气架构 --- 整车电源管理

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

【MySQL进阶】事务、存储引擎、索引、SQL优化、锁

一、事务 1.概念 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向 系统提交或撤销操作请求&#xff0c;即这些操作要么同时成功&#xff0c;要么同时失败。 例子&#xff1a;转账&#xff0c;要求扣钱和进账…

Mysql 离线版下载安装-(详细版)

Mysql 离线版下载安装-(详细版) 文章目录 Mysql 离线版下载安装-(详细版)1.0 下载地址2.0 解压到本地2.0.1 配置环境变量2.0.2 新建mysql配置文件ini2.0.3使用管理员启动 cmd 3.0 初始化密码忘记了4.0 修改初始化密码5.0 使用可视化工具登录Mysql 1.0 下载地址 地址&#xff1…

stm32使用笔记

stm32外设使用 1. adc使用2. uart使用 1. adc使用 参考文章 static void MX_Adc_DMA_Init(void) {/* DMA controller clock enable */__HAL_RCC_DMA1_CLK_ENABLE();/* DMA interrupt init *//* DMA1_Channel1_IRQn interrupt configuration */HAL_NVIC_SetPriority(DMA1_Cha…

人工智能应用中的恐怖谷效应是什么?

人工智能应用中的恐怖谷效应是什么&#xff1f; 引言 随着人工智能、机器人技术和计算机图形学的发展&#xff0c;越来越逼真的人形机器人、虚拟角色和动画形象开始出现。然而&#xff0c;尽管这些技术进步令人惊叹&#xff0c;它们也带来了一个有趣而复杂的心理现象&#xf…

应急响应:Linux 入侵排查思路.

什么是应急响应. 一个组织为了 应对 各种网络安全 意外事件 的发生 所做的准备 以及在 事件发生后 所采取的措施 。说白了就是别人攻击你了&#xff0c;你怎么把这个攻击还原&#xff0c;看看别人是怎么攻击的&#xff0c;然后你如何去处理&#xff0c;这就是应急响应。 目录&…

引领企业全球化发展 极光亮相华为亚太ICT峰会2024·泰国

近日&#xff0c;华为亚太ICT峰会2024泰国正式开幕&#xff0c;极光&#xff08;Aurora Mobile&#xff0c;纳斯达克股票代码&#xff1a;JG&#xff09;凭借其创新的技术实力与前瞻性的产品布局&#xff0c;受邀出席本次活动。会上&#xff0c;极光展示了其全域消息通知解决方…

【C语言篇】C语言常考及易错题整理DAY1

文章目录 C语言常考及易错题整理选择题全局、局部和静态变量#define与typedef转义字符操作符循环其他 编程题计算日期到天数转换柯尼希定理旋转数组的最小数字描述错误的集合整数转换密码检查 C语言常考及易错题整理 选择题 全局、局部和静态变量 执行下面程序&#xff0c;正…

表操作数据库练习

1.一个关系数据库文件中的各条记录 &#xff08; &#xff09; A.前后顺序不能任意颠倒&#xff0c;一定要按照输入的顺序排列 B.前后顺序可以任意颠倒&#xff0c;不影响库中的数据关系 C.前后顺序可以任意颠倒&#xff0c;但排列顺序不同&#xff0c;统计处理的结果就可…

人工智能-自然语言处理(NLP)

人工智能-自然语言处理&#xff08;NLP&#xff09; 1. NLP的基础理论1.1 语言模型&#xff08;Language Models&#xff09;1.1.1 N-gram模型1.1.2 词嵌入&#xff08;Word Embeddings&#xff09;1.1.2.1 词袋模型&#xff08;Bag of Words, BoW&#xff09;1.1.2.2 TF-IDF&a…

SDL 锁屏视频卡死bug原因

最近在封装播放库&#xff0c;我用的是FFMPEGSDL库封装&#xff0c;这个库其实用起来不难&#xff0c;因为网上可供参考的资源也多&#xff0c;所以我自己也封装了一个&#xff0c;但是播放视频时只要我电脑一锁屏再重新打开&#xff0c;我靠视频卡住不动了&#xff0c;我调试看…

两种图像透明背景转特定颜色方法的比较

之前写过一篇博客&#xff0c;关于透明背景转换为特定颜色&#xff0c;当时使用了NumPy数组采用布尔索引转换的方式&#xff0c;这次我们把这种转换和常规的逐像素转换的方式进行比较&#xff0c;看那种方法效率更高。记得以前使用Matlab的时候&#xff0c;显然是矩阵布尔索引的…

yolov8/yolov10 MLU370 实现推理/单多卡训练!

文章目录 前言一、平台环境配置二、基础环境配置1.代码下载2.环境安装3.模型下载4.代码修改 三.单卡推理四、单/多卡训练 前言 本章主要操作以yolov8为主&#xff0c;但是yolov10用该操作也能直接适用&#xff0c;开干&#xff01; 一、平台环境配置 镜像选择&#xff1a;v2…

spring boot(学习笔记第十七课)

spring boot(学习笔记第十七课) Spring boot的Apache ActiveMQ 学习内容&#xff1a; Spring boot的Apache ActiveMQ 1. Spring boot的Apache ActiveMQ 什么是JMS&#xff08;Java Message Service&#xff09; JMS&#xff08;Java Message Service&#xff09;就是Java消息服…

Fultter项目中IOS打包问题整理(附带解决方案)

Fultter项目中IOS打包问题整理&#xff08;附带解决方案&#xff09; 问题一&#xff1a;CocoaPods 在你的项目中找不到名为 AlicloudPush 版本为 ~> 1.9.1 的 Pod 规范。报错信息问题分析解决方法 问题二&#xff1a;ruby版本问题报错信息问题分析问题原因解决方法 问题三&…

squeeze()和unsequeeze()函数的作用

sequeeze(dim):用于在指定位置添加一个大小为1的新维度 例如&#xff1a; 其他的大家自行尝试&#xff01; squeeze()&#xff1a;squeeze函数用于去除张量中所有大小为1的维度,注意当没有传入任何参数的时候&#xff0c;去掉的是所有大小为1的维度。 例如&#xff1a;

力扣第五十九题——螺旋矩阵II

内容介绍 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]]示例 2&#xff1a; 输入&#xff1a;n 1 …

基于SpringBoot的网络海鲜市场系统的设计与实现

TOC springboot219基于SpringBoot的网络海鲜市场系统的设计与实现 绪论 1.1 选题背景 当人们发现随着生产规模的不断扩大&#xff0c;人为计算方面才是一个巨大的短板&#xff0c;所以发明了各种计算设备&#xff0c;从结绳记事&#xff0c;到算筹&#xff0c;以及算盘&…

【ubuntu24.04】远程开发:微软RDP;ssh远程root登录;clion以root远程

本地配置了一台ubutnu服务器,运行各种服务。偶尔会远程过去,做一些UI操作。感觉nomachine的就是会模糊一些,可能是默认的编码比较均衡?RDP更清晰? RDP 与nomachine比,更清晰,但是貌似不支持自动缩放窗口?默认的配置就比较高:GPT的建议 安装xrdp还要配置session:1. 安…