1.整体效果

https://mmbiz.qpic.cn/sz_mmbiz_gif/EGZdlrTDJa78enaFEibNNCoXO9Hr2PI7boFTRgZHl3icicXwzLGLTQPxClhQAQiabWL41pTOQLLwgOBlbGrzq1Rwtw/640?wx_fmt=gif&from=appmsg&wxfrom=13

轮播图是一种常见的视觉元素,用于展示图片、信息或故事。CSS轮播图动画通过平滑的过渡效果和动态的视觉表现,极大地增强了轮播图的吸引力和用户体验。本文将探讨如何使用CSS来创建一个响应灵敏、动画流畅的轮播图,让网站内容的展示更加生动和有趣。

2.完整代码

HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>轮播图</title>
<link rel="stylesheet" type="text/css" href="6_11.css">
</head>
<body>
<div class="g-container">
<ul style="--s: 4">
<li>
<img src="./1.png">
</li>
<li>
<img src="./2.png">
</li>
<li>
<img src="./3.png">
</li>
<li>
<img src="./4.png">
</li> <!--末尾补一个首尾数据-->
<li>
<img src="./1.png">
</li>
</ul>
</div>
</body>
</html>

CSS

* {
padding: 0;
margin: 0;
} li {
list-style: none;
} body,
html {
width: 100%;
height: 100%;
display: flex;
} :root {
--w: 400;
--speed: 2s;
} .g-container {
width: 400px;
margin: auto;
height: 240px;
line-height: 240px;
font-size: 20px;
background: #673ab7;
color: #fff;
overflow: hidden;
border: 2px solid #766c6c;
} ul {
display: flex;
flex-wrap: nowrap;
} ul li {
flex-shrink: 0;
width: 100%;
height: 100%;
box-sizing: border-box;
} ul li img {
width: 100%;
height: 100%;
object-fit: cover;
} ul {
animation: move calc(var(--speed) * var(--s)) steps(var(--s)) infinite;
} ul li {
white-space: nowrap;
cursor: pointer;
animation: move1 calc(var(--speed)) infinite;
} @keyframes move {
0% {
transform: translate(0, 0px);
} 100% {
transform: translate(calc(var(--s) * var(--w) * -1px), 0);
}
} @keyframes move1 {
0% {
transform: translate(0, 0px);
} 80%,
100% {
transform: translate(calc(var(--w) * -1px), 0);
}
}

关键技术点如下:

  1. Flexbox布局:
    ul { display: flex; flex-wrap: nowrap; }:使用flex布局来水平排列列表项,并禁止换行。

  2. ul li { flex-shrink: 0; width: 100%; height: 100%; box-sizing: border-box; }:设置列表项不收缩,宽高为100%,并使用box-sizing: border-box;来包含边框和内边距。

  3. 图片样式:

  4. ul li img { width: 100%; height: 100%; object-fit: cover; }:使图片占满整个列表项,并使用object-fit: cover;来保证图片的封面效果。

  5. 动画效果:

    1. ul 和 ul li 的动画使用了animation属性,分别命名为movemove1,并使用了CSS变量--speed--s来控制动画的速度和步数。
    2. @keyframes move 和 @keyframes move1:定义了两个关键帧动画,分别用于整个列表和单个列表项的移动。
  6. 无限循环:在ul中末尾补了一个首尾数据,结合动画的步骤(steps(var(--s)))和无限循环(infinite),实现了无缝滚动效果。

CSS动画(轮播图)的更多相关文章

  1. 用 CSS 做轮播图

    对于用 css 实现一个轮播图的缘由,是那时候刚开始接触前端,完全还不懂 js.但是有一个项目(就是一个用来应付面试的作品)需要做一个轮播的效果,当时第一反应就是用 css3 自定义动画 -webki ...

  2. 纯CSS实现轮播图效果,你不知道的CSS3黑科技

    前言 轮播图已经是一个很常见的东西,尤其是在各大App的首页顶部栏,经常会轮番显示不同的图片. 一提到轮播图如何实现时,很多人的第一反应就是使用Javascript的定时器,当然这种方法是可以实现的. ...

  3. 拓展-教你手把手用纯CSS写轮播图

    先看成品图[示例网址:][1] [1]: https://huruji.github.io/css-imitate-js/slider/index.html一.随便说几句####css3动画效果的强大 ...

  4. JavaScript--缓动动画+轮播图

    上效果: 实现步骤: 最重要的是运动公式!!! <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...

  5. 使用css实现轮播图

    使用css3实现图片轮播 前言:实现图片轮播的方式有很多种 ,例如js ,css 等等. 本文主要讲述使用纯css3实现轮播图 工具介绍: 使用的编辑器: Hbuilder 进入正题 html代码: ...

  6. 使用css制作轮播图

    <!--HTML代码--> <!DOCTYPE html> <html lang="en"><head> <meta char ...

  7. 基于css制作轮播图的部分效果

    在轮播图中,我们可以通过鼠标在特定位置上的滑动来实现元素背景的改变.通常在制作轮播图时,我们首先想到的是js中的交互.可是,如果我们无法使用js,只能单纯的靠css又该如何实现这一效果呢?下面,本人将 ...

  8. 纯css实现轮播图

    轮播图的实现原理其实是比较简单的 举个例子 <div class="main"> <div class="div-main"></ ...

  9. 用html +js+css 实现页面轮播图效果

    html 页面 <html lang="en"> <head> <meta charset="UTF-8"> <met ...

  10. css3 - 纯css实现一个轮播图

    这是我上一次的面试题.一晃两个月过去了. 从前都是拿原理骗人,把怎么实现的思路说出来. 我今天又被人问到了,才想起来真正码出来.码出来效果说明一切: 以上gif,只用到了5张图片,一个html+css ...

随机推荐

  1. Ubuntu22.04系统安装DeepMind Lab

    相关资料: DeepMind Lab的一些python例子-----(Ubuntu22.04系统安装DeepMind Lab)后续 ================================== ...

  2. 推荐一款.NET开源、功能强大的二维码生成类库

    前言 在日常开发需求中,生成二维码以分享文本内容或跳转至指定网站链接等场景是比较常见的.今天大姚给大家分享一款.NET开源(MIT License).免费.简单易用.功能强大的二维码生成类库:QrCo ...

  3. AtCoder Beginner Contest 328

    AtCoder Beginner Contest 328 A - Not Too Hard (atcoder.jp) #include <bits/stdc++.h> #define de ...

  4. unity游戏源码和教程:智能分析话语的三维唯美世界

    我不想和任何人说话,大家不要打扰我. 这个游戏的源码(含教程文档)我放到了夸克网盘https://pan.quark.cn/s/618fb9459029 小区: 小区傍晚的雪: 小区的晚上: 家里: ...

  5. 嵌入式工程师到底要不要学习ARM汇编指令?arm学习文章汇总

    嵌入式工程师到底要不要学习ARM汇编指令? 网上搜索这个问题,答案很多,大部分的建议是不要学汇编,只要学C语言. 而一口君作为一个十几年经验的驱动工程师,个人认为,汇编语言还是需要掌握的,想要搞精.搞 ...

  6. lbs 地理位置

    lbs 地理位置 https://caorong.github.io/2018/05/04/lbs/ https://www.cnblogs.com/lbser/p/3310455.html http ...

  7. C语言编程-GCC编译过程

    gcc编译 预处理 ->编译->汇编->链接 预处理 gcc -E helloworld.c -o helloworld.i 头文件展开:不检查语法错误,即可以展开任意文件: 宏定义 ...

  8. 9k star 监控系统,100% 国产,推荐了解

    前言 监控系统的重要性不言而喻,国内用的最多的应该是 Zabbix 和 Prometheus,其优缺点: Zabbix 是资产管理式,监控数据存在数据库中,擅长设备监控,不擅长微服务和云原生环境的监控 ...

  9. SearXNG与LLM强强联合:打造用户隐私保护的智能搜索解答流程,隐私无忧,搜索无忧

    SearXNG与LLM强强联合:打造用户隐私保护的智能搜索解答流程,隐私无忧,搜索无忧 SearXNG 是一个免费的互联网元搜索引擎,整合了各种搜索服务的结果.用户不会被跟踪,也不会被分析. gith ...

  10. Windows SSH 免密登陆远程计算机

    上传公钥 如果远程计算机是类 Unix 系统,使用下面这条命令: Get-Content $Env:USERPROFILE\.ssh\id_rsa.pub | ssh USER@HOST " ...