HTMLCSS实现网页轮播图
网页中轮播图区域的实现与解析
在现代网页设计中,轮播图是一种常见且实用的元素,能够在有限的空间内展示多个内容,吸引用户的注意力。下面将对上述代码中轮播图区域的实现方式进行详细介绍。
一、HTML 结构
<div class="carousel-container"><div class="carousel-wrapper"><div class="carousel-slide"><img src="../png/11430bae6b4173b44543952bb77f24f358e7.jpg" alt=""></div><div class="carousel-slide"><img src="../png/114317272555415270.jpg" alt=""></div><div class="carousel-slide"><img src="../png/11436d56a814d335440688225557ba55ea8d.jpg" alt=""></div><div class="carousel-slide"><img src="../png/114390d3e946f0bf4e95ae287e007efc8d45.jpg" alt=""></div><div class="carousel-slide"><img src="../png/1143a889c2a96a1a4dbdbbba1037a5eac487.jpg" alt=""></div><div class="carousel-slide"><img src="../png/1143daf6b582954042b8801ae2564c19d398.jpg" alt=""></div><!-- 复制第一张图片实现无缝循环 --><div class="carousel-slide"><img src="../png/1143ea648b5f242f4fe8a399cb5f741366bf.jpg" alt=""></div></div>
</div>
<div class="carousel-indicators"><!-- 静态指示器内容容器 --><div class="indicator-content"></div><!-- 导航圆点 --><span class="current" data-index="0"></span><span data-index="1"></span><span data-index="2"></span><span data-index="3"></span><span data-index="4"></span><span data-index="5"></span>
</div>
.carousel-container:这是轮播图的最外层容器,用于包裹整个轮播图内容。它设置了position: absolute,通过top和left属性确定在页面中的位置,同时设置了宽度、高度、overflow: hidden等属性,确保轮播图超出容器部分被隐藏。.carousel-wrapper:该容器用于包含所有的轮播图幻灯片(.carousel-slide),使用display: flex布局,使得幻灯片可以水平排列。通过修改其transform属性来实现幻灯片的滚动切换。.carousel-slide:每个幻灯片是一个包含图片的div元素,通过设置min-width: 100%和height: 100%使其填满轮播图容器的宽度和高度,图片通过object-fit: cover确保在容器内完整显示且不失真。.carousel-indicators:这是轮播图的指示器容器,包含了用于指示当前幻灯片位置的导航圆点(span元素)。通过不同的类名(如current)来表示当前激活的幻灯片。
二、CSS 样式
轮播图的样式主要通过 CSS 来实现,相关样式如下:
.carousel-container {position: absolute;z-index: 9;top: -610px;left: -390px;width: 720px;height: 380px;margin: -60px auto 0;overflow: hidden;position: relative;border: 9px solid #fff;
}
.carousel-wrapper {display: flex;width: 100%;height: 100%;transition: transform 0.5s ease;
}
.carousel-slide {min-width: 100%;height: 100%;
}
.carousel-slide img {width: 100%;height: 100%;object-fit: cover;
}
.carousel-indicators {position: absolute;z-index: 100;top: 840px;left: 1100px;transform: translateX(-50%);display: flex;gap: 15px;
}
.carousel-indicators span {width: 70px;height: 15px;background-color: #1f1f1f;border: 2px solid #fff;border-radius: 1px;cursor: pointer;transition: all 0.3s ease;
}
.carousel-indicators span.current {background-color: #ebebeb;transform: scale(1.2);
}
.carousel-indicators span:hover {background-color: rgba(0, 255, 255, 0.7);
}
.carousel-container:设置了绝对定位、z-index、尺寸、边框等样式,通过overflow: hidden隐藏超出容器的幻灯片部分。.carousel-wrapper:使用display: flex布局,并设置了过渡效果(transition),使得幻灯片切换时具有平滑的动画效果。.carousel-slide和.carousel-slide img:确保幻灯片和其中的图片能够正确填充轮播图容器。.carousel-indicators:设置了指示器的位置、布局方式(display: flex)以及圆点之间的间距(gap)。.carousel-indicators span:定义了导航圆点的样式,包括尺寸、背景颜色、边框、圆角以及过渡效果。.carousel-indicators span.current:当某个圆点表示当前幻灯片时,应用不同的样式(如背景颜色和缩放效果)以突出显示。.carousel-indicators span:hover:设置鼠标悬停在圆点上时的样式变化,增加交互性。
三、JavaScript 交互
通过 JavaScript 代码实现了轮播图的自动播放、手动切换以及指示器的更新等功能,相关代码如下:
// 获取DOM元素
const carouselWrapper = document.querySelector('.carousel-wrapper');
const slides = document.querySelectorAll('.carousel-slide');
const prevBtn = document.querySelector('.qin7');
const nextBtn = document.querySelector('.qin17');
const indicators = document.querySelectorAll('.carousel-indicators span');
const carouselContainer = document.querySelector('.carousel-container');// 初始化变量
let currentIndex = 0;
let timer;// 更新轮播图位置和指示器
function updateCarousel() {// 更新轮播图位置carouselWrapper.style.transform = `translateX(${-currentIndex * slides[0].offsetWidth}px)`;// 更新指示器状态indicators.forEach((indicator, index) => {indicator.classList.toggle('current', index === currentIndex % 6);});
}// 下一张
function nextSlide() {currentIndex++;carouselWrapper.style.transition = 'transform 0.5s ease';// 检查是否到达最后一张(克隆的第一张)if (currentIndex >= slides.length - 1) {setTimeout(() => {carouselWrapper.style.transition = 'none';currentIndex = 0;updateCarousel();}, 500);}updateCarousel();
}// 上一张
function prevSlide() {currentIndex--;carouselWrapper.style.transition = 'transform 0.5s ease';// 检查是否到达第一张(克隆的最后一张)if (currentIndex < 0) {setTimeout(() => {carouselWrapper.style.transition = 'none';currentIndex = slides.length - 2;updateCarousel();}, 500);}updateCarousel();
}// 自动轮播
function startAutoPlay() {timer = setInterval(nextSlide, 3000);
}// 停止自动轮播
function stopAutoPlay() {clearInterval(timer);
}// 初始化轮播图
function initCarousel() {// 绑定事件nextBtn.addEventListener('click', nextSlide);prevBtn.addEventListener('click', prevSlide);indicators.forEach(indicator => {indicator.addEventListener('click', () => {currentIndex = parseInt(indicator.dataset.index);carouselWrapper.style.transition = 'transform 0.5s ease';updateCarousel();});});// 鼠标悬停暂停carouselContainer.addEventListener('mouseenter', stopAutoPlay);carouselContainer.addEventListener('mouseleave', startAutoPlay);// 开始自动轮播startAutoPlay();// 初始化显示updateCarousel();
}// 页面加载完成后初始化轮播图
document.addEventListener('DOMContentLoaded', initCarousel);
- 获取 DOM 元素:通过
document.querySelector和document.querySelectorAll获取轮播图相关的 DOM 元素,如轮播图容器、幻灯片、导航按钮和指示器。 - 初始化变量:定义了
currentIndex用于记录当前幻灯片的索引,timer用于存储自动播放的定时器。 updateCarousel函数:用于更新轮播图的位置和指示器的状态,通过修改carouselWrapper的transform属性来移动幻灯片,并根据currentIndex更新指示器的样式。nextSlide和prevSlide函数:分别实现了切换到下一张和上一张幻灯片的功能,同时处理了无缝循环的逻辑,当到达最后一张或第一张时,通过设置过渡效果和延迟来实现平滑的循环切换。startAutoPlay和stopAutoPlay函数:用于启动和停止自动播放,通过setInterval和clearInterval来控制定时器。initCarousel函数:初始化轮播图的功能,包括绑定导航按钮和指示器的点击事件、设置鼠标悬停暂停自动播放的功能,并启动自动播放和初始化显示。- 页面加载完成后初始化:通过
document.addEventListener('DOMContentLoaded', initCarousel);在页面加载完成后调用initCarousel函数,确保轮播图能够正常工作。
通过以上 HTML、CSS 和 JavaScript 的结合,实现了一个具有自动播放、手动切换和指示器功能的轮播图区域,为网页增添了动态和交互性的展示效果。
效果展示



编辑
分享
在代码中添加轮播图的指示点
轮播图区域的代码中如何实现自动播放?
怎样在轮播图区域添加鼠标点击事件?
相关文章:
HTMLCSS实现网页轮播图
网页中轮播图区域的实现与解析 在现代网页设计中,轮播图是一种常见且实用的元素,能够在有限的空间内展示多个内容,吸引用户的注意力。下面将对上述代码中轮播图区域的实现方式进行详细介绍。 一、HTML 结构 <div class"carousel-c…...
如何确定置信水平的最佳大小
在统计学中,置信水平的选择并不是一成不变的,而是根据具体的研究目的、样本量、数据类型以及行业标准等因素来确定的。然而,在大多数情况下,95%的置信水平是最常用的。 选择95%置信水平的原因 平衡可靠性与精确性: •…...
Java基础第21天-正则表达式
正则表达式是对字符串执行模式匹配的技术 如果想灵活的运用正则表达式,必须了解其中各种元字符的功能,元字符从功能上大致分为: 限定符选择匹配符分组组合和反向引用符特殊字符字符匹配符定位符 转义号\\:在我们使用正则表达式去检索某些特…...
Maven 项目中引入本地 JAR 包
在日常开发过程中,我们有时会遇到一些未上传到 Maven 中央仓库或公司私有仓库的 JAR 包,比如第三方提供的 SDK 或自己编译的库。这时候,我们就需要将这些 JAR 包手动引入到 Maven 项目中。本文将介绍两种常见方式:将 JAR 安装到本…...
CSGO 盲盒开箱系统技术实现深度解析
一、系统架构设计 (一)前后端分离架构 采用前后端分离模式,后端专注业务逻辑处理与数据管理,前端负责用户交互界面呈现。后端通过 RESTful API 与前端进行数据交互,这种架构能有效提高开发效率,便于团队分…...
JS通过GetCapabilities获取wms服务元数据信息并在SuperMap iClient3D for WebGL进行叠加显示
获取wms服务元数据信息并在三维webgl客户端进行叠加显示 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><tit…...
7N60-ASEMI无人机专用功率器件7N60
编辑:LL 7N60-ASEMI无人机专用功率器件7N60 型号:7N60 品牌:ASEMI 封装:TO-220F 最大漏源电流:7A 漏源击穿电压:600V 批号:最新 RDS(ON)Max:1.20Ω …...
Redis日常学习(一)
我的Redis学习笔记:从命令行到性能调优 Redis Redis(Remote Dictionary Server)本质上是一个基于内存的键值存储系统. 安装配置Redis的过程非常简单: # Ubuntu/Debian安装Redis sudo apt-get update sudo apt-get install red…...
Pytorch图像数据转为Tensor张量
PyTorch的所有模型(nn.Module)都只接受Tensor格式的输入,所以我们在使用图像数据集时,必须将图像转换为Tensor格式。PyTorch提供了torchvision.transforms模块来处理图像数据集。torchvision.transforms模块提供了一些常用的图像预…...
Java 加密与解密:从算法到应用的全面解析
Java 加密与解密:从算法到应用的全面解析 一、加密与解密技术概述 在当今数字化时代,数据安全至关重要。Java 加密与解密技术作为保障数据安全的关键手段,被广泛应用于各个领域。 加密是将明文数据通过特定算法转换为密文,使得…...
Java基础系列-HashMap源码解析2-AVL树
文章目录 AVL树左旋右旋左旋右旋的4种情况LL 型RR 型LR 型RL 型 实际插入时怎么判断是那种类型?插入时注意事项删除节点 AVL树 为避免BST树退化成链表的极端情况, AVL 树应运而生。 平衡因子取值(-1,0,1)…...
蓝桥杯 19. 最大比例
最大比例 原题目链接 题目描述 X 星球的某个大奖赛设了 M 级奖励。每个级别的奖金是一个正整数。 并且,相邻两个级别间的比例是一个固定值,也就是说:所有级别的奖金构成一个等比数列。 例如: 奖金数列为 16, 24, 36, 54&…...
前端加密介绍与实战
前端数据加密 文章目录 前端数据加密前端数据加密介绍为什么需要前端数据加密?前端数据加密的常见方式前端数据加密的实现场景:加密用户密码并发送到后端步骤 1:安装加密库步骤 2:实现加密逻辑步骤 3:后端解密 实战总结…...
Zookeeper是什么?基于zookeeper实现分布式锁
zookeeper听的很多,但实际在应用开发中用的不错,主要是作为中间件配合使用的,例如:Kafka。 了解zk首先需要知道它的数据结构,可以想象为树、文件夹目录。每个节点有基本的信息,例如:创建时间、…...
Kafka 主题设计与数据接入机制
一、前言:万物皆流,Kafka 是入口 在构建实时数仓时,Kafka 既是 数据流动的起点,也是后续流处理系统(如 Flink)赖以为生的数据源。 但“消息进来了” ≠ “你就能处理好了”——不合理的 Topic 设计、接入方…...
gem5-gpu教程05 内存建模
memory-modeling|Details on how memory is modeled in gem5-gpu gem5-gpu’s Memory Simulation gem5-gpu在很大程度上避开了GPGPU-Sim的单独功能模拟,而是使用了gem5的执行中执行模型。因此,当执行存储/加载时,内存会被更新/读取。没有单独的功能路径。(顺便说一句,这…...
MySQL的日志--Redo Log【学习笔记】
MySQL的日志--Redo Log 知识来源: 《MySQL是怎样运行的》--- 小孩子4919 MySQL的事务四大特性之一就是持久性(Durability)。但是底层是如何实现的呢?这就需要我们的Redo Log(重做日志)闪亮登场了。它记录着…...
【AI应用】免费代码仓构建定制版本的ComfyUI应用镜像
免费代码仓构建定制版本的ComfyUI应用镜像 1 创建代码仓1.1 注册登陆1.2 创建代码仓1.5 安装中文语言包1.4 拉取ComfyUI官方代码2 配置参数和预装插件2.1 保留插件和模型的版本控制2.2 克隆插件到代码仓2.2.1 下载插件2.2.2 把插件设置本仓库的子模块管理3 定制Docker镜像3.1 创…...
MineWorld,微软研究院开源的实时交互式世界模型
MineWorld是什么 MineWorld是微软研究院开发并开源的一个基于《我的世界》(Minecraft)的实时互动世界模型。该模型采用了视觉-动作自回归Transformer架构,将游戏场景和玩家动作转化为离散的token ID,并通过下一个token的预测进行…...
被裁20240927 --- 视觉目标跟踪算法
永远都像初次见你那样使我心荡漾 参考文献目前主流的视觉目标跟踪算法一、传统跟踪算法1. 卡尔曼滤波(Kalman Filter)2. 相关滤波(Correlation Filter,如KCF、MOSSE)3. 均值漂移(MeanShift/CamShift&#x…...
Agentic AI——当AI学会主动思考与决策,世界将如何被重塑?
一、引言:2025,Agentic AI的元年 “如果ChatGPT是AI的‘聊天时代’,那么2025年将开启AI的‘行动时代’。”——Global X Insights[1] 随着Agentic AI(自主决策型人工智能)的崛起,AI系统正从被动应答的“工具…...
Ollama API 应用指南
1. 基础信息 默认地址: http://localhost:11434/api数据格式: application/json支持方法: POST(主要)、GET(部分接口) 2. 模型管理 API (1) 列出本地模型 端点: GET /api/tags功能: 获取已下载的模型列表。示例:curl http://lo…...
PNG透明免抠设计素材大全26000+
在当今的数字设计领域,寻找高质量且易于使用的素材是每个设计师的日常需求。今天,我们将为大家介绍一个超全面的PNG透明免抠设计素材大全,涵盖多种风格、主题和应用场景,无论是平面设计、网页设计还是多媒体制作,都能轻…...
4.多表查询
SQL 多表查询:数据整合与分析的强大工具 文章目录 SQL 多表查询:数据整合与分析的强大工具一、 多表查询概述1.1 为什么需要多表查询1.2 多表查询的基本原理 二、 多表查询关系2.1 一对一关系(One-to-One)示例: 2.2 一…...
MCP 基于 TypeScript 的完整示例,包含stdio、sse多种用法和调试,对于构建自己的API工具链很有用
typescript-mcp-demo 这是一个基于 Model Context Protocol (MCP) 的 TypeScript 示例项目,展示了如何创建一个简单的 MCP 服务器,包含基本的工具(tools)和资源(resources)功能。 官网:https:…...
位运算知识
位运算是一种直接对整数在内存中的二进制位进行操作的运算方式。计算机中的整数是以二进制形式存储的,位运算通过操作这些二进制位来实现高效的计算。位运算通常比普通的算术运算更快,因为它直接作用于硬件层面。 以下是几种常见的位运算符及其功能&…...
mybatis高级查询:一对多配置,一次性查出主表和子表中的数据
一、MyBatis高级查询:一对多 MyBatis是一款强大的持久层框架,提供了多种方式来处理关联查询,其中包括一对一和一对多的情况。在本文中,我们将深入探讨一对多关联查询的实现方式。 在MyBatis中配置一对多关系通常涉及到associati…...
美团2024年春招第一场笔试 C++
目录 1,小美的平衡矩阵 2,小美的数组询问 3,小美的MT 4,小美的朋友关系 1,小美的平衡矩阵 【题目描述】 给定一个n*n的矩阵,该矩阵只包含数字0和1。对于 每个i(1<i<n),求在该矩阵中&am…...
XHTMLConverter把docx转换html报java.lang.NullPointerException异常
一.报错 1.报错信息 org.apache.poi.xwpf.converter.core.XWPFConverterException: java.lang.NullPointerExceptionat org.apache.poi.xwpf.converter.xhtml.XHTMLConverter.convert(XHTMLConverter.java:77)at org.apache.poi.xwpf.converter.xhtml.XHTMLConverter.doConve…...
OpenCV 图形API(52)颜色空间转换-----将 NV12 格式的图像数据转换为 RGB 格式的图像
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将图像从 NV12 (YUV420p) 色彩空间转换为 RGB。该函数将输入图像从 NV12 色彩空间转换到 RGB。Y、U 和 V 通道值的常规范围是 0 到 255。 输出图…...
