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

前端轮播图几种不同实现方式

前端轮播图是网页中常见的交互组件,用于循环展示多张图片或内容。

一、纯 CSS 实现轮播图

纯 CSS 实现轮播图主要利用 input 元素和 label 元素的交互,结合 animation 动画和 radio 单选框的特性来实现。

示例代码
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><style>/* 轮播图容器 */.slider {width: 500px;height: 300px;margin: 0 auto;position: relative;overflow: hidden;}/* 图片容器 */.slides {width: 300%;height: 100%;display: flex;transition: transform 0.5s ease-in-out;}/* 单个图片 */.slide {width: 33.333%;height: 100%;}/* 隐藏 radio 按钮 */input[type="radio"] {display: none;}/* 导航点 */.navigation {position: absolute;bottom: 10px;left: 50%;transform: translateX(-50%);display: flex;}/* 导航点样式 */.navigation label {width: 10px;height: 10px;border-radius: 50%;background-color: rgba(255, 255, 255, 0.5);margin: 0 5px;cursor: pointer;}/* 控制图片切换 */#radio1:checked~.slides {transform: translateX(0);}#radio2:checked~.slides {transform: translateX(-33.333%);}#radio3:checked~.slides {transform: translateX(-66.666%);}</style>
</head><body><div class="slider"><!-- 图片 --><div class="slides"><div class="slide" style="background-color: red;"></div><div class="slide" style="background-color: green;"></div><div class="slide" style="background-color: blue;"></div></div><!-- 导航点 --><input type="radio" name="radio-btn" id="radio1" checked><input type="radio" name="radio-btn" id="radio2"><input type="radio" name="radio-btn" id="radio3"><div class="navigation"><label for="radio1"></label><label for="radio2"></label><label for="radio3"></label></div></div>
</body></html>
代码解释
  • HTML:创建了一个轮播图容器,包含图片容器和导航点。
  • CSS 部分
    • .slider 作为轮播图的容器,设置了宽度、高度和溢出隐藏。
    • .slides 是图片的容器,宽度为 300% 以容纳多张图片,使用 flex 布局。
    • 通过 input 的 checked 状态和 ~ 选择器来控制图片的切换。

二、JavaScript 实现轮播图

使用 JavaScript 可以实现更复杂的交互,如自动轮播、手动切换等。

示例代码
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><style>/* 轮播图容器 */.slider {width: 500px;height: 300px;margin: 0 auto;position: relative;overflow: hidden;}/* 图片容器 */.slides {width: 300%;height: 100%;display: flex;}/* 单个图片 */.slide {width: 33.333%;height: 100%;}/* 导航按钮 */.prev,.next {position: absolute;top: 50%;transform: translateY(-50%);background-color: rgba(0, 0, 0, 0.5);color: white;padding: 10px;cursor: pointer;}.prev {left: 0;}.next {right: 0;}</style>
</head><body><div class="slider"><!-- 图片 --><div class="slides"><div class="slide" style="background-color: red;"></div><div class="slide" style="background-color: green;"></div><div class="slide" style="background-color: blue;"></div></div><!-- 导航按钮 --><span class="prev" onclick="plusSlides(-1)">&#10094;</span><span class="next" onclick="plusSlides(1)">&#10095;</span></div><script>let slideIndex = 1;showSlides(slideIndex);function plusSlides(n) {showSlides(slideIndex += n);}function showSlides(n) {let slides = document.getElementsByClassName("slide");if (n > slides.length) {slideIndex = 1;}if (n < 1) {slideIndex = slides.length;}for (let i = 0; i < slides.length; i++) {slides[i].style.transform = `translateX(-${(slideIndex - 1) * 100}%)`;}}</script>
</body></html>
代码解释
  • HTML 部分:创建了轮播图容器、图片容器和导航按钮。
  • CSS 部分:设置了轮播图的样式和导航按钮的样式。
  • JavaScript 部分
    • slideIndex 用于记录当前显示的图片索引。
    • plusSlides 函数用于切换图片。
    • showSlides 函数根据 slideIndex 来显示对应的图片。

三、使用第三方库实现轮播图

如 Swiper.js,它是一个强大的轮播图插件,提供了丰富的功能和配置选项。

示例代码
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 引入 Swiper 的 CSS 文件 --><link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css"><style>/* 轮播图容器 */.swiper-container {width: 500px;height: 300px;}</style>
</head><body><!-- Swiper --><div class="swiper-container"><div class="swiper-wrapper"><div class="swiper-slide" style="background-color: red;"></div><div class="swiper-slide" style="background-color: green;"></div><div class="swiper-slide" style="background-color: blue;"></div></div><!-- 如果需要导航按钮 --><div class="swiper-button-next"></div><div class="swiper-button-prev"></div></div><!-- 引入 Swiper 的 JavaScript 文件 --><script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script><script>// 初始化 Swipervar swiper = new Swiper('.swiper-container', {navigation: {nextEl: '.swiper-button-next',prevEl: '.swiper-button-prev',},});</script>
</body></html>
代码解释
  • HTML 部分:创建了 Swiper 容器和图片容器,并添加了导航按钮。
  • CSS 部分:设置了 Swiper 容器的样式。
  • JavaScript 部分:引入 Swiper 的 JavaScript 文件,并初始化 Swiper 实例,配置导航按钮。
http://www.dtcms.com/a/540448.html

相关文章:

  • SPA 路由与服务器 fallback 策略详解
  • 通过宝塔将vue、nodejs、MongoDB数据库部署到服务器
  • 从 serve -s 到 fallback:一次前端资源加载异常的排查记录
  • 如何通过检查MySQL与系统日志以找出服务器CPU占用源
  • 烟台优化网站公司济南君哲网站建设公司
  • 新能源汽车便携充电枪:市场爆发前夜的技术革命与产业重构
  • 给自己的网站做镜像网站wordpress安装主题 ftp
  • Django `select_related` 查询优化
  • Django 与 FastAPI 架构对比:学习路径指南
  • 【Axure教程】能展开查看附件的嵌套表格
  • 装修网站线怎样做中国制造网外贸平台下载
  • GPT结构剖析:从“词袋”到“思想”的魔法之旅
  • u盘安装系统提示“windows无法安装到这个磁盘,选中的磁盘具有gpt分区表”解决方法
  • WebRTC 集成 FFmpeg HEVC 硬件解码(hevc_cuvid)avcodec_open2错误码-558323010
  • 阿里国际AI翻译模型Marco霸榜WMT,英中赛道超越GPT-4.1与Gem
  • 三星单片机开发网站店铺装修一平方大概多少钱
  • 麒麟系统拔掉鼠标键盘再插上,鼠标键盘没反应
  • 做内贸只要有什么网络推广网站wordpress更新需要ftp
  • FastReport VCL发布2026.1版本:全面支持RAD Studio 13,PDF输出功能显著增强
  • SpringBoot3整合JetCache缓存
  • 云原生周刊:在 Kubernetes 上运行机器学习
  • nacos多个实例,如果让多个实例同时更新缓存 实现方案
  • Redis连接超时排查与优化指南
  • 织梦小说网站模板下载地址做手机网站用什么软件
  • 网站怎么添加链接代码网站的倒计时怎么做
  • 1472. 设计浏览器历史记录
  • ETCD 集群备份与恢复
  • ETCD 常用命令
  • 低空经济网络安全风险
  • 【音视频】B站的流媒体协议