超越静态: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),实现了无缝滚动效果。
相关文章
|
1月前
|
机器学习/深度学习 前端开发 JavaScript
|
26天前
|
前端开发 搜索推荐 UED
实现 CSS 动画效果的兼容性
【10月更文挑战第16天】实现 CSS 动画效果的兼容性需要对不同浏览器的特性有深入的了解,并采取适当的策略和方法。通过不断的实践和优化,你可以在各种浏览器上创造出流畅、美观且兼容的动画效果,为用户带来更好的体验。在实际开发中,要密切关注浏览器的发展动态,及时掌握最新的兼容性技巧和解决方案,以确保你的动画设计能够在广泛的用户群体中得到良好的呈现。
103 58
|
5天前
|
Web App开发 前端开发 JavaScript
如何在不牺牲动画效果的前提下,优化 CSS3 动画的性能?
如何在不牺牲动画效果的前提下,优化 CSS3 动画的性能?
18 1
|
5天前
|
编解码 前端开发 UED
如何巧妙利用CSS3,打造炫酷视觉效果
在使用CSS3打造炫酷视觉效果时,要注意适度使用,避免过度设计导致页面过于复杂和混乱,影响用户的阅读和浏览体验。同时,要确保所使用的效果在不同的浏览器和设备上具有良好的兼容性,以提供一致的视觉效果。
8 1
|
12天前
|
Web App开发 前端开发 JavaScript
揭秘!前端大牛们如何巧妙利用CSS3,打造炫酷视觉效果!
【10月更文挑战第31天】前端开发面临复杂布局的挑战,本文介绍了几种提升开发效率和代码质量的工具和技术。基础的HTML和CSS可以应对大部分布局需求,而Firefox开发者工具、VS Code、Vue、React等则能应对更复杂的布局,帮助开发者构建高性能、用户友好的网页应用。
22 4
|
1月前
|
前端开发 JavaScript API
探索 CSS Houdini:轻松构建酷炫的 3D 卡片翻转动画
本文通过构建一个 3D 翻卡动画深入探讨了 CSS Houdini 的强大功能,展示了如何通过 Worklets、自定义属性、Paint API 等扩展 CSS 的能力,实现高度灵活的动画效果。文章首先介绍了 Houdini 的核心概念与 API,并通过构建一个动态星空背景、圆形进度条以及交互式 3D 翻卡动画的实际示例,展示了如何利用 CSS Houdini 赋予网页设计更多创造力。最后,还演示了如何将这种 3D 翻卡效果集成到公司网站中,提升用户体验。CSS Houdini 的创新能力为网页设计带来了前所未有的灵活性,推动了前端开发迈向新的高度。
26 0
探索 CSS Houdini:轻松构建酷炫的 3D 卡片翻转动画
|
2月前
|
JavaScript 前端开发
JS配合CSS3实现动画和拖动小星星小Demo
本文通过代码示例展示了如何使用JavaScript和CSS3实现动画效果和拖动小星星的交互效果,包括文字掉落动画和鼠标拖动产生小星星动画的实现方法。
46 0
JS配合CSS3实现动画和拖动小星星小Demo
|
1月前
|
前端开发
纯CSS实现轮播图
纯CSS实现轮播图
36 0
|
1月前
|
前端开发
CSS 动画介绍及语法
CSS 动画介绍及语法
27 0
|
2月前
|
JavaScript 前端开发
网页前端课程设计-【模仿】香港中文大学官网,轮播图及div+css布局,js的dom操作
这篇文章介绍了如何模仿香港中文大学官网进行网页前端课程设计,包括使用div+css布局、js的DOM操作以及实现轮播图等技术细节。