如何用CSS写轮播图效果?

如何用CSS写轮播图效果?

相信很多小伙伴做过的项目里面都有轮播图这么一个需求,有的小伙伴可能会自己造轮子,有的小伙伴可能会直接Google轮播图插件

但是如果不使用javascript,能不能实现轮播图的效果呢?可能小伙伴们并没有考虑过这个问题,那么下面我们就一起来用css实现一个简易的轮播图

基本需求分析

由于css无法做到js一样的精准操控,所有某些效果是无法实现的,比如在轮播的同时支持用户左右滑动,所以使用css智能实现基本的效果。下面列出来的内容就是我们实现的:

立即学习“前端免费学习笔记(深入)”;

1、在固定区域中,内部内容自行滑动切换形成播放的效果

2、当切换到最后一张内容时,会反向播放或者回到起点重播

3、每张内容会停留一段时间,让用户能够看清楚

4、内容可以点击/进行操作

dom结构搭建

首先要有一个容器作为轮播图的容器,同时由于要实现滑动切换,所以内部需要有一个装载所有待切换内容的子容器

如果子容器中的内容是左右切换的,则需要将内容左右排列开

下面以轮播图片为例,上代码

@@##@@ @@##@@ @@##@@ @@##@@ @@##@@

.loop-wrap 是主容器

.loop-images-container 是承载内部图片的子容器

.loop-image 是图片内容,如果需要显示其他内容,可以自定义

css实现静态效果

轮播图内每一页内容的宽高应该相同,且等于主容器.loop-wrap宽高

.loop-images-container的宽高必然有一个大于外部主容器,overflow属性应该设置为hidden。那为什么不设置为auto呢?我不告诉你,你可以自己试试看???

.loop-wrap {    position: relative;    width: 500px;    height: 300px;    margin: 100px auto;    overflow: hidden;}.loop-images-container{    position: absolute;    left: 0; top: 0;    width: 500%; /* 横向排列 5张图片 宽度应为主容器5倍 */    height: 100%;    font-size: 0;}.loop-image{    width: 500px;    height: 300px;}

下面在浏览器中打开页面,就可以看到不带轮播效果的静态页面了,除了第一张图片,其他图片都不可见

css实现轮播效果

轮播效果说到底就是一个动画效果,而通过css3的新属性 animation 我们就可以自定义一个动画来达到轮播图效果。下面先来了解一下 animation 这个属性

/*animation: name duration timing-function delay iteration-count directionname: 动画名duration: 动画持续时间 设置为0则不执行timing-function:动画速度曲线delay:动画延迟开始时间 设置为0则不延迟iteration-count:动画循环次数 设置为infinite则无限次循环direction:是否应该轮流反向播放动画 normal 否 alternate 是*/

animationname 值是动画名,动画名可以通过 @keyframes 创建自定义动画规则

分析动画

要实现轮播,本质上是使内部承载内容的子容器 .loop-images-container 进行位移,从而使不同位置的内容一次展示在用户眼前

共有五张图片需要展示,如果轮播总耗时10s,那么每张图片应该有2s的时间(20%),而每张图片耗时的构成是切换耗时+展示耗时,如果切换耗时500ms(5%),展示耗时就应该是1500ms(15%)

于是这样改造css

.loop-images-container{    position: absolute;    left: 0; top: 0;    width: 500%;    height: 100%;    font-size: 0;    transform: translate(0,0); /* 初始位置位移 */    animation: loop 10s linear infinite;}/* 创建loop动画规则 *//*    轮播5张,总耗时10s,单张应为2s(20%)   单张切换动画耗时500ms,停留1500ms*/@keyframes loop {    0% {transform: translate(0,0);}    15% {transform: translate(0,0);} /* 停留1500ms */    20% {transform: translate(-20%,0);} /* 切换500ms 位移-20% */    35% {transform: translate(-20%,0);}    40% {transform: translate(-40%,0);}    55% {transform: translate(-40%,0);}    60% {transform: translate(-60%,0);}    75% {transform: translate(-60%,0);}    80% {transform: translate(-80%,0);}    95% {transform: translate(-80%,0);}    100% {transform: translate(0,0);} /* 复位到第一张图片 */}

当当当当~~~纯css实现轮播图效果完成

想要直接看效果的小伙伴可以猛戳下面的链接

纯css实现轮播图效果

这是一个方向的轮播效果,想要实现往返方向的轮播效果,小伙伴们可以试试directionalternate,但是自定义动画规则的时间间隔也要重新计算了哦!

推荐教程:《CSS教程》

如何用CSS写轮播图效果?如何用CSS写轮播图效果?如何用CSS写轮播图效果?如何用CSS写轮播图效果?如何用CSS写轮播图效果?

以上就是如何用CSS写轮播图效果?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1615120.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
css实现隐藏元素效果
上一篇 2025年12月24日 04:45:28
css中常用的水平垂直居中对齐方法有哪些
下一篇 2025年12月24日 04:45:41

相关推荐

  • Flex 布局左右同高怎么实现?

    flex布局左右同高 在flex布局中,左右布局的元素高度不一致时,想要让边框延伸到最大高度,可以采用以下方法: 基于当前结构的方法: 给.rht和.lft盒子添加: .rht { height: min-content;} 这样可以使弹性盒子被子盒子内容撑开。 使用javascript获取.rht…

    2026年5月10日
    700
  • HTML弹窗怎么设置_SEO友好的弹窗实现方案

    答案:SEO友好的HTML弹窗需将内容预置于DOM中,通过CSS隐藏,再用JavaScript控制显示与隐藏,确保搜索引擎可抓取且不影响用户体验。 HTML弹窗的设置,核心在于通过HTML结构、CSS样式和JavaScript交互来实现内容的动态显示与隐藏。要让弹窗对SEO友好,我们得从内容的可抓取…

    2026年5月10日
    000
  • CSS中背景图片与背景色的叠加及定位技巧

    本文深入探讨了在css中如何有效地将背景图片与背景颜色结合使用,并精确控制图片位置。文章首先介绍了background-image和background-color的基本层叠原理及定位属性,随后分析了背景图片不生效或定位异常的常见原因,特别是css优先级冲突。针对此问题,提供了使用!importan…

    2026年5月10日
    000
  • 构建可直接链接的动态标签页:HTML、CSS与JavaScript实践指南

    本教程详细阐述了如何在Web页面中创建可直接链接到特定标签页内容的导航系统。通过结合HTML锚点、CSS样式和JavaScript动态逻辑,文章提供了一种优化方案,实现了按需加载、高效显示标签页内容,并确保了从外部URL直接访问特定标签页的功能。内容涵盖了从基础的JavaScript控制到更高级的动…

    2026年5月10日
    000
  • 如何使用HTML和CSS设计一个现代的侧边栏菜单?

    当你考虑一个典型网站的布局时,很可能会在主要内容区域的右侧或左侧包含一列重要的链接(用于网页中各个部分的导航链接)。 这个组件被称为“侧边栏”,通常用作网页上的菜单。虽然它被广泛使用,但开发人员通常将此元素添加到网站上,用于在页面之间导航,甚至导航到网页的不同部分。 让我们了解这个功能,并尝试只使用…

    2026年5月10日
    000
  • (.html)如何发布_发布HTML文件到网络的方法【网络】

    可通过四种方式将HTML文件部署为公开网站:一、GitHub Pages免费托管;二、云存储服务(如阿里云OSS)启用静态网站托管;三、VPS配置Nginx/Apache服务器;四、Netlify/Vercel无服务器快速部署。 如果您已创建好一个 HTML 文件,但希望他人能通过互联网访问它,则需…

    2026年5月10日
    000
  • JavaScript精确筛选ID带特定数字模式的DOM元素

    本文详细阐述如何利用JavaScript的document.querySelectorAll结合数组的filter方法和正则表达式,高效且精确地筛选出ID以特定数字模式结尾的DOM元素。该方法解决了纯CSS选择器无法处理复杂ID模式的局限性,确保仅匹配符合严格数字后缀规则的元素,从而提高DOM操作的…

    2026年5月10日
    100
  • 使用css解决png透明图片在ie6正常显示的方法

    很久没写css了,遇到一个png透明logo折腾了我很久,也怪以前的页面直接不考虑透明的问题。在网上找到几种办法,有用css实现的,有些是用js实现,用js感觉大材小用了,能用纯css解决就css吧,这里感谢蓝莓公主的帮助。以下的两种方法都是尝试过可行的,不过在我的虚拟机下的ie6图片完全透明了,不…

    用户投稿 2026年5月10日
    000
  • html超链接字体颜色修改CSS属性名称是什么

    修改超链接字体颜色的CSS属性是color,通过a标签选择器设置,如a{color:red;},并可用a:link、a:visited、a:hover、a:active分别定义未访问、已访问、悬停、点击状态的颜色,建议按LVHA顺序书写以避免样式冲突。 修改HTML超链接字体颜色的CSS属性名称是 …

    2026年5月10日
    000
  • JavaScript条件隐藏计数器:当值为0时隐藏元素

    本教程将指导您如何使用纯javascript动态管理网页上的计数器显示。我们将学习如何获取特定元素的数量,并将该数量显示在指定的“元素中。更重要的是,当计数为零时,我们将实现一种机制来自动隐藏相应的“元素,从而优化用户界面,避免显示不必要的零值,并融入现代javascript…

    2026年5月10日
    000
  • Golang如何构建Markdown转换器 使用blackfriday库实践转换

    Golang如何构建Markdown转换器 使用blackfriday库实践转换Golang如何构建Markdown转换器 使用blackfriday库实践转换Golang如何构建Markdown转换器 使用blackfriday库实践转换Golang如何构建Markdown转换器 使用blackfriday库实践转换

    blackfriday库的核心功能是遵循commonmark规范将markdown转换为html并支持多种扩展,优势在于高性能、可定制性和广泛的功能集。1. 它支持表格、代码块高亮、任务列表等常用扩展,提升内容表现力;2. 作为go原生实现,处理速度快,适合实时渲染和大规模文档处理;3. 提供wit…

    2026年5月10日 用户投稿
    000
  • css的基本选择器有哪几种

    css的基本选择器有3种,分别为:1、标签选择器,又称为类型选择器,匹配指定标签元素名称的所有标签;2、class选择器,匹配指定类的所有元素并设置样式;3、id选择器,可以为标有特定id的HTML元素指定特定的样式。 本教程操作环境:windows7系统、CSS3&&HTML5版、…

    2026年5月10日
    000
  • 前端挑战 – 十二月魅力我的标记:冬至 ☃️

    前端挑战赛12月版提交:冬至主题登陆页面 项目概述 我构建了一个以冬至为主题的、引人入胜的登陆页面!该页面融入了炫酷的动画、交互式按钮以及动态视觉效果,并确保其在各种设备上都能完美运行,提供流畅的用户体验。 核心功能: 契合节日氛围的精美冬季主题字体。流畅的滚动和动画,带来愉悦的浏览体验。方便的“返…

    2026年5月10日
    000
  • 解决Bootstrap按钮间非预期空白间距的专业指南

    在bootstrap布局中,并排按钮之间出现无法通过常规css检查工具定位的空白间距,通常并非css样式问题,而是html源代码中元素间的换行符或空格所导致。这些空白符被浏览器解析为单个空格,进而创建了视觉上的间距。 理解问题根源:HTML空白字符的处理 当HTML元素(尤其是display: in…

    2026年5月10日
    000
  • JavaScript中大规模动态按钮状态管理与事件委托最佳实践

    本文深入探讨了在JavaScript中高效管理大量动态按钮状态的方法。通过优化HTML结构、利用模板字面量进行动态DOM生成,并结合事件委托机制,实现了对按钮点击事件的集中处理和状态更新,有效解决了大规模交互元素(如数百个像素按钮)的性能和维护难题。教程将详细介绍如何通过CSS类控制按钮外观,并同步…

    2026年5月10日
    000
  • 如何爬取html5_html5页面爬取技巧方法【数据采集】

    针对HTML5页面结构化数据提取,应采用五类方法:一、用BeautifulSoup4+html5lib精准解析宽松语法;二、用Playwright/Selenium处理JS动态渲染;三、用语义化CSS选择器提升鲁棒性;四、提取JSON-LD/microdata等嵌入元数据;五、模拟设备环境应对响应式…

    2026年5月10日
    000
  • 在html中如何引用外部css文件

    如何引用外部 CSS 文件?使用 标签,指定 rel=”stylesheet” 和 href=”CSS 文件路径” 属性。创建外部 CSS 文件将 CSS 文件保存到 web 服务器在 HTML 中使用 标签 如何在 HTML 中引用外部 CSS 文件…

    2026年5月10日
    000
  • HTML如何实现阴影效果?box-shadow怎么控制?

    HTML阴影效果主要依赖CSS的box-shadow属性,通过设置h-offset、v-offset、blur、spread、color和inset参数,可控制阴影位置、模糊度、颜色及内外部显示,支持多重阴影与高级视觉效果。结合border-radius可为圆角元素添加阴影,配合transition…

    2026年5月10日
    100
  • 手机浏览器html怎么运行环境_手机浏览器html运行环境配置【教程】

    首先确保HTML文件正确存储于手机可访问目录并以.html格式保存,使用文件管理器通过主流浏览器打开;其次选用Chrome或Firefox等支持HTML5的现代浏览器,避免兼容性问题;接着在浏览器中启用本地文件执行权限,如在Chrome中开启“Local file access”实验功能;若仍无法正…

    2026年5月10日
    000
  • 如何构建一个高性能的、基于Canvas的JavaScript数据可视化组件?

    答案:通过按需渲染、减少上下文操作和高效交互检测实现高性能Canvas可视化。使用isDirty标记控制重绘,合并路径绘制,预存静态图层,结合devicePixelRatio适配高清屏,利用空间索引与节流优化交互响应,避免全量刷新,提升性能。 构建一个高性能的基于 Canvas 的 JavaScri…

    2026年5月10日
    100

发表回复

登录后才能评论
关注微信