超越静态:CSS动画轮播图,引领视觉新体验!

简介: 超越静态:CSS动画轮播图,引领视觉新体验!

先上效果


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



完整代码


以下是完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            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);
            }
        }
    </style>
</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>

🌟 关键技术点如下:

  1. Flexbox布局
  1. 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;来包含边框和内边距。
  1. 图片样式
  1. ul li img { width: 100%; height: 100%; object-fit: cover; }:使图片占满整个列表项,并使用object-fit: cover;来保证图片的封面效果。
  1. 动画效果
  1. ulul li 的动画使用了animation属性,分别命名为movemove1,并使用了CSS变量--speed--s来控制动画的速度和步数。
  2. @keyframes move@keyframes move1:定义了两个关键帧动画,分别用于整个列表和单个列表项的移动。
  1. 无限循环
  1. ul中末尾补了一个首尾数据,结合动画的步骤(steps(var(--s)))和无限循环(infinite),实现了无缝滚动效果。
相关文章
|
24天前
|
前端开发 JavaScript 开发者
探索Web设计新纪元:CSS3的革新特性如何重塑我们的网页视觉体验?
【8月更文挑战第26天】随着Web技术的发展,CSS3为前端开发带来了众多激动人心的新特性,极大提升了网页设计的视觉效果与创意空间。本文通过对比CSS3与CSS2,详细介绍了CSS3在选择器增强、圆角阴影处理、渐变背景应用、转换动画实现、文字效果优化、媒体查询支持及多列布局方面的显著改进,展示了CSS3如何助力开发者打造更具吸引力和互动性的网页体验。
34 1
|
28天前
|
前端开发
2s 利用 HTML+css动画实现企业官网效果
2s 利用 HTML+css动画实现企业官网效果
|
22天前
|
前端开发 UED 开发者
有趣的CSS - 文字加载动画效果
这个文本加载动画简单而有趣,可以在网站标题、广告标语或者关键信息的展示上吸引用户的注意力。开发者可以根据需要调整动画的持续时间、步骤数,或者光标颜色等,来适应特定的设计需求。使用这种动态元素,增强网站的互动性和用户体验,同时也为网站增添了一抹活泼的风格。
36 5
|
28天前
|
前端开发 JavaScript
HTML+CSS如何打造撒花动画效果?3分钟学会,炫酷到爆!
HTML+CSS如何打造撒花动画效果?3分钟学会,炫酷到爆!
|
28天前
|
前端开发
CSS动画霓虹灯闪烁效果
CSS动画霓虹灯闪烁效果
|
28天前
|
前端开发 JavaScript
还在为酷炫css动画背景头疼吗?1分钟解决
还在为酷炫css动画背景头疼吗?1分钟解决
|
28天前
HTML+CSS 实现带轮播图的企业官网页面(记得收藏)
HTML+CSS 实现带轮播图的企业官网页面(记得收藏)
|
27天前
|
前端开发 JavaScript 开发者
css过渡与动画
css过渡与动画
32 0
|
4月前
|
前端开发 内存技术
CSS动画示例(上一篇是CSS过渡…)
CSS动画示例(上一篇是CSS过渡…)
|
4月前
|
前端开发
CSS3中的动画示例
CSS3中的动画示例