当前位置: 首页 > news >正文

前端:轮播图常见的几种实现方式

目录

前言

一、轮播图是什么?

二、实现方法

1.使用纯 HTML、CSS、JavaScript 实现

2.使用组件来快速实现

总结



前言

在学习前端的过程中,总是有要实现轮播图效果的时候,本文就介绍了轮播图常见的几种实现方式。


一、轮播图是什么?

轮播图是在首页上展示信息的一种方式,为了让用户不用滚动屏幕就能看到更多内容,可以利用轮播图来最大化信息密度。

二、实现方法

1.使用纯 HTML、CSS、JavaScript 实现

HTML代码如下:

<div class="carousel"><img src="./assets/banner1.png" alt=""><span class="pre">&lt;</span><span class="next">&gt;</span>
</div>

CSS代码如下:

    * {padding: 0;margin: 0;}/* 轮播图 */.carousel {position: relative;margin: 100px auto;width: 1240px;height: 500px;}/* 左右切换箭头 */.pre,.next {position: absolute;top: 50%;transform: translateY(-50%);width: 20px;height: 40px;background-color: rgba(0, 0, 0, 0.3);text-align: center;line-height: 40px;color: #fff;opacity: 0;transition: all 0.3s;cursor: pointer;}.pre {left: 0;border-radius: 0 20px 20px 0;}.next {right: 0;border-radius: 20px 0 0 20px;}.carousel:hover .pre,.carousel:hover .next {opacity: 1;}

JS代码如下:

    /*** 轮播图实现的基本流程* 1.数据准备 --- 遍历数组来实现轮播效果* 2.获取对象* 3.自动播放 --- 用定时器实现* 4.当鼠标悬停在轮播图上面时,停止自动轮播 --- 销毁定时器* 5.当鼠标离开时,开始自动轮播 --- 重新开启定时器* 6.点击左右箭头时,进行图片的切换 --- 用事件委托来实现*/// 1.数据准备 --- 遍历数组来实现轮播效果const imageUrls = ['./assets/banner1.png', './assets/banner2.png', './assets/banner3.png', './assets/banner4.png', './assets/banner5.png']let i = 0// 2.获取对象const carousel = document.querySelector('.carousel')const img = document.querySelector('img')// 3.自动播放 --- 用定时器实现let timer = setInterval(() => {i += 1i %= 5img.src = imageUrls[i]}, 3000);// 4.当鼠标悬停在轮播图上面时,停止自动轮播 --- 销毁定时器carousel.addEventListener('mouseenter', () => {clearInterval(timer)})// 5.当鼠标离开时,开始自动轮播 --- 重新开启定时器carousel.addEventListener('mouseleave', () => {timer = setInterval(() => {i += 1i %= 5img.src = imageUrls[i]}, 3000);})// 6.点击左右箭头时,进行图片的切换 --- 用事件委托来实现carousel.addEventListener('click', (e) => {// 判断所点击的是左箭头,还是右箭头if (e.target.classList.contains('pre')) {i += 4i %= 5img.src = imageUrls[i]}if (e.target.classList.contains('next')) {i += 1i %= 5img.src = imageUrls[i]}})

 在以上代码中,首先是准备好了结构和样式,并且数据是存在数组里的,这样方便后续做图片的自动播放以及手动切换。

自动播放主要是用定时器来实现,手动切换则是运用了事件委托,具体流程也在上面的代码中进行了比较清晰的注释,有兴趣的话可以看一下。

 

2.使用组件来快速实现

实现轮播图效果,除以上方法外,其实还有很多方法。而在这些方法中,最方便快速的可以说就是使用组件了。比如说 swiper ,vant-ui 等组件,用这些组件就可以快速的实现轮播图,至于具体如何来使用组件,那就要看组件的官方文档了。

只不过要提一嘴的是,虽然有组件来帮助我们快速实现一些效果,但终究还是要会自己手动实现的,这样才能更好的提高自身能力。


总结

以上就是今天要讲的内容,本文简单介绍了一些实现轮播图效果的方法,可以得出结论,轮播图并不难实现。最后,希望本文能对您有所帮助。

相关文章:

前端:轮播图常见的几种实现方式

目录 前言 一、轮播图是什么&#xff1f; 二、实现方法 1.使用纯 HTML、CSS、JavaScript 实现 2.使用组件来快速实现 总结 前言 在学习前端的过程中&#xff0c;总是有要实现轮播图效果的时候&#xff0c;本文就介绍了轮播图常见的几种实现方式。 一、轮播图是什么&#xff1f…...

Pytest基础01: 入门demo脚本

目录 1 Pytest接口测试 1.1 最简单版hello world 1.2 pytest.ini 2 pytest兼容unittest 3 封装pytest执行入口 1 Pytest接口测试 Pyest是一个可以用于接口测试的强大框架&#xff0c;开源社区也有非常多的pytest插件。 按江湖传统&#xff0c;学习一个新语言或者新框架&…...

ruoyi 多租户 开启后针对某一条sql不适用多租户; 若依多租户sql规则修改

文章参考&#xff1a;多租户功能 | Ruoyi-TDesign 忽略租户​ 1.如果需要指定单独 SQL 不开启过滤&#xff0c;可在对应的 Mapper 接口添加如下忽略注解&#xff1a; InterceptorIgnore(tenantLine "true", dataPermission "false") 此处注意事项 使…...

driftingblues6靶机

打开靶场 查看页面源代码&#xff0c;最下面有一个注释&#xff0c;提供了一个网址 vmlist.github.io&#xff0c;我们去访问一下 这里是一个github页面&#xff0c;提供攻防虚拟机的下载&#xff0c;对我们解题并没有什么有用的信息&#xff0c;我们再去扫描端口 发现只有80端…...

Neo4j GDS 2.0 安装与配置

Neo4j GDS 2.0 安装与配置 GDS插件安装&#xff1a;Neo4j官方文档 1. GDS简介 Neo4j Graph Data Science (GDS) 库作为 Neo4j Graph Database 的插件提供。该插件需要安装到数据库中并在 Neo4j 配置中列入白名单。有两种主要方法可以实现这一点&#xff0c;我们将在本章中详…...

A*算法与人工势场法结合的路径规划(附MATLAB源码)

A*算法与人工势场法&#xff08;APF&#xff09;结合实现路径规划 路径规划是机器人、无人机及自动驾驶等领域中的一个重要问题。本文结合了经典的 A* 算法与 人工势场法&#xff08;Artificial Potential Field, APF&#xff09;&#xff0c;实现了一种改进的路径规划方法。下…...

BootstrapTable处理表格

需求背景 历史项目使用 BootstrapTable 作为前端组件 应客户需要调整&#xff1a; 冻结前四列对于大文本文字显示部分内容&#xff0c;鼠标悬浮显示完整内容 冻结列 1、引入相关CSS,JS CSS <link rel"stylesheet" href"/css/bootstrap.min.css"> …...

UniApp 打开文件工具,获取文件类型,判断文件类型

注意&#xff1a;以下代码使用 typeScript 开发&#xff0c;如果想在 js 中使用&#xff0c;可参考 npm 已经发布的包&#xff1a;https://www.npmjs.com/package/uni-easy-file NPM 使用 如果想直接在 npm 项目中使用可以直接执行以下命令 npm i uni-easy-file然后直接使用 …...

docker-开源nocodb,使用已有数据库

使用已有数据库 创建本地数据库 数据库&#xff1a;nocodb 用户&#xff1a;nocodb 密码&#xff1a;xxxxxx修改docker-compose.yml 默认网关的 IP 地址是 172.17.0.1&#xff08;适用于 bridge 网络模式&#xff09;version: "2.1" services:nocodb:environment:…...

Mysql COUNT() 函数详解

简介 COUNT()函数定义 COUNT()函数是SQL中常用的 聚合函数 &#xff0c;用于统计满足特定条件的记录数。它可以灵活地应用于各种查询场景&#xff0c;帮助用户快速获取所需的数据统计信息。该函数不仅能够计算所有行的数量&#xff0c;还能针对特定列进行计数&#xff0c;并支…...

单周期CPU电路设计

1.实验目的 本实验旨在让学生通过设计一个简单的单周期 CPU 电路&#xff0c;深入理解 RISC-V 指令集的子集功能实现&#xff0c;掌握数字电路设计与实现的基本流程&#xff0c;包括指令解析、部件组合、电路设计以及功能仿真等环节&#xff0c;同时培养verilog HDL编程能力和…...

从零开始采用命令行创建uniapp vue3 ts springboot项目

文章目录 1&#xff0c;通过命令行创建uniapp vue3 ts项目2, 创建springboot后台项目3&#xff0c; 联调测试 1&#xff0c;通过命令行创建uniapp vue3 ts项目 ​ 官方通过命令行创建项目的地址&#xff1a;https://zh.uniapp.dcloud.io/quickstart-cli.html ​ 在执行下面操…...

跟着逻辑先生学习FPGA-实战篇第一课 6-1 LED灯闪烁实验

硬件平台&#xff1a;征战Pro开发板 软件平台&#xff1a;Vivado2018.3 仿真软件&#xff1a;Modelsim10.6d 文本编译器&#xff1a;Notepad 征战Pro开发板资料 链接:https://pan.baidu.com/s/1AIcnaGBpNLgFT8GG1yC-cA?pwdx3u8 提取码:x3u8 1 知识背景 LED&#xff0c;又名…...

springboot 跨域配置

方案一 Configuration public class GlobalCorsConfig {Beanpublic CorsFilter corsFilter() {//1. 添加 CORS配置信息CorsConfiguration config new CorsConfiguration();//放行哪些原始域config.addAllowedOrigin("*");//是否发送 Cookieconfig.setAllowCredenti…...

C语言宏和结构体的使用代码

先看代码: #include <stdio.h> #include <string.h>// 定义一个宏&#xff0c;用于定义结构体 #define DEFINE_STRUCT(name, type1, name1, type2, name2, size, cf) \typedef struct { \type1 name1; …...

微信小程序 覆盖组件cover-view

wxml 覆盖组件 <video src"../image/1.mp4" controls"{{false}}" event-model"bubble"> <cover-view class"controls"> <cover-view class"play" bind:tap"play"> <cover-image class"…...

【Redis知识】Redis进阶-redis还有哪些高级特性?

文章目录 概览1. 持久化2. 复制与高可用3. 事务和脚本4. 发布/订阅 Redis事务示例事务中的错误处理使用 WATCH 进行乐观锁总结 Redis管道一、管道的原理二、管道的特点三、管道的使用场景四、管道的实现示例五、管道的注意事项 发布订阅模式一、Redis发布订阅模式介绍二、Redis…...

【Pytorch实用教程】深入了解 torchvision.models.resnet18 新旧版本的区别

深入了解 torchvision.models.resnet18 新旧版本的区别 在深度学习模型开发中,PyTorch 和 torchvision 一直是我们不可或缺的工具。近期,torchvision 对其模型加载 API 进行了更新,将旧版的 pretrained 参数替换为新的 weights 参数。本文将介绍这一变化的背景、具体区别,…...

攻防世界 - Web - Level 3 | very_easy_sql

关注这个靶场的其它相关笔记&#xff1a;攻防世界&#xff08;XCTF&#xff09; —— 靶场笔记合集-CSDN博客 0x01&#xff1a;考点速览 本关考察的是 SSRF 漏洞&#xff0c;需要我们结合 Gopher 协议利用服务端进行越权 SQL 注入。考点不少&#xff0c;总结一下主要有以下几点…...

使用Java Selenium修改打开页面窗口大小

在自动化测试过程中&#xff0c;有时需要模拟不同屏幕尺寸的用户行为&#xff0c;以确保网页在不同设备上的显示效果和用户体验。Selenium是一个强大的自动化测试工具&#xff0c;支持多种编程语言和浏览器&#xff0c;可以帮助我们实现这一需求。本文将详细介绍如何使用Java S…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

毫米波雷达基础理论(3D+4D)

3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文&#xff1a; 一文入门汽车毫米波雷达基本原理 &#xff1a;https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...