2025年3月16日 星期日 甲辰(龙)年 月十五 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Html+Div+Css(前端)

前端原生 CSS 跑马灯效果,无限轮播(横竖版本,带渐变遮罩,简单实用)

时间:12-21来源:作者:点击数:30

一、横版跑马灯

Untitled.gif
  • <!DOCTYPE html>
  • <html lang="en">
  • <head>
  • <meta charset="UTF-8">
  • <meta http-equiv="X-UA-Compatible" content="IE=edge">
  • <meta name="viewport" content="width=device-width, initial-scale=1.0">
  • <title>Document</title>
  • <style>
  • .box {
  • /* 重点:盒子宽度 600 */
  • width: 600px;
  • height: 150px;
  • border: 3px solid black;
  • overflow: hidden;
  • }
  • .box ul {
  • margin: 0;
  • padding: 0;
  • list-style: none;
  • display: flex;
  • height: 100%;
  • animation: move 5s linear infinite;
  • }
  • /* hover 暂停,不用可去掉 */
  • .box ul:hover {
  • animation-play-state: paused;
  • }
  • .box ul li {
  • height: 100%;
  • /* 重点:单个图片宽度 200,相当于默认不动可见 3 个 */
  • width: 200px;
  • flex-shrink: 0;
  • }
  • .box ul li img {
  • height: 100%;
  • width: 100%;
  • }
  • @keyframes move {
  • /* 为什么设置 -800px ?公式:主图张数 * 单个图片宽度(每轮主图只有 4 张,4 张照片为一个周期,如果需要轮播的主图为 7、8、9...张,都一样) */
  • 100% {
  • transform: translateX(-800px);
  • }
  • }
  • </style>
  • </head>
  • <body>
  • <!-- 窗口 -->
  • <div class="box">
  • <!-- 轮播列表 -->
  • <ul>
  • <!-- 轮播主图 -->
  • <li><a href="#"><img src="./1.jpg" alt=""></a></li>
  • <li><a href="#"><img src="./2.jpg" alt=""></a></li>
  • <li><a href="#"><img src="./3.jpg" alt=""></a></li>
  • <li><a href="#"><img src="./4.jpg" alt=""></a></li>
  • <!-- 轮播完成防止留白 -->
  • <!-- 怎么确定尾部需要几张防止留白,3 张是怎么得出的?其实就是上面: 盒子宽度 / 单个图片宽度 = 一屏几张留白图 -->
  • <li><a href="#"><img src="./1.jpg" alt=""></a></li>
  • <li><a href="#"><img src="./2.jpg" alt=""></a></li>
  • <li><a href="#"><img src="./3.jpg" alt=""></a></li>
  • </ul>
  • </div>
  • </body>
  • </html>

二、竖版跑马灯

Untitled.gif
  • <!DOCTYPE html>
  • <html lang="en">
  • <head>
  • <meta charset="UTF-8">
  • <meta http-equiv="X-UA-Compatible" content="IE=edge">
  • <meta name="viewport" content="width=device-width, initial-scale=1.0">
  • <title>Document</title>
  • <style>
  • .box {
  • width: 600px;
  • /* 重点:盒子宽度 150 */
  • height: 150px;
  • border: 3px solid black;
  • overflow: hidden;
  • }
  • .box ul {
  • margin: 0;
  • padding: 0;
  • list-style: none;
  • display: flex;
  • flex-direction: column;
  • height: 100%;
  • animation: move 5s linear infinite;
  • }
  • /* hover 暂停,不用可去掉 */
  • .box ul:hover {
  • animation-play-state: paused;
  • }
  • .box ul li {
  • /* 重点:单个图片高度 150,相当于默认不动可见 1 个 */
  • height: 150px;
  • width: 100%;
  • flex-shrink: 0;
  • }
  • .box ul li img {
  • height: 100%;
  • width: 100%;
  • }
  • @keyframes move {
  • /* 为什么设置 -600px ?公式:主图张数 * 单个图片高度(每轮主图只有 4 张,4 张照片为一个周期,如果需要轮播的主图为 7、8、9...张,都一样) */
  • 100% {
  • transform: translateY(-600px);
  • }
  • }
  • </style>
  • </head>
  • <body>
  • <!-- 窗口 -->
  • <div class="box">
  • <!-- 轮播列表 -->
  • <ul>
  • <!-- 轮播主图 -->
  • <li><a href="#"><img src="./1.jpg" alt=""></a></li>
  • <li><a href="#"><img src="./2.jpg" alt=""></a></li>
  • <li><a href="#"><img src="./3.jpg" alt=""></a></li>
  • <li><a href="#"><img src="./4.jpg" alt=""></a></li>
  • <!-- 轮播完成防止留白 -->
  • <!-- 怎么确定尾部需要几张防止留白,1 张是怎么得出的?其实就是上面: 盒子高度 / 单个图片高度 = 一屏几张留白图 -->
  • <li><a href="#"><img src="./1.jpg" alt=""></a></li>
  • </ul>
  • </div>
  • </body>
  • </html>

三、竖版跑马灯(带渐变遮罩,可以改成横向的)

Untitled.gif
  • <!DOCTYPE html>
  • <html lang="en">
  • <head>
  • <meta charset="UTF-8">
  • <meta http-equiv="X-UA-Compatible" content="IE=edge">
  • <meta name="viewport" content="width=device-width, initial-scale=1.0">
  • <title>Document</title>
  • <style>
  • .box {
  • position: relative;
  • width: 600px;
  • /* 重点:盒子宽度 150 */
  • height: 150px;
  • overflow: hidden;
  • }
  • .box ul {
  • margin: 0;
  • padding: 0;
  • list-style: none;
  • display: flex;
  • flex-direction: column;
  • height: 100%;
  • animation: move 5s linear infinite;
  • }
  • /* hover 暂停,不用可去掉 */
  • .box ul:hover {
  • animation-play-state: paused;
  • }
  • .box ul li {
  • /* 重点:单个图片高度 150,相当于默认不动可见 1 个 */
  • height: 150px;
  • width: 100%;
  • flex-shrink: 0;
  • }
  • .box ul li img {
  • height: 100%;
  • width: 100%;
  • }
  • @keyframes move {
  • /* 为什么设置 -600px ?公式:主图张数 * 单个图片高度(每轮主图只有 4 张,4 张照片为一个周期,如果需要轮播的主图为 7、8、9...张,都一样) */
  • 100% {
  • transform: translateY(-600px);
  • }
  • }
  • /* 顶部、底部白色渐变 */
  • .header-blur {
  • position: absolute;
  • left: 0;
  • top: 0;
  • right: 0;
  • height: 10px;
  • /* background-image: linear-gradient(red, green 50%); */
  • background-image: linear-gradient(#fff, rgba(0, 0, 0, 0) 50%);
  • z-index: 1;
  • }
  • .footer-blur {
  • position: absolute;
  • left: 0;
  • bottom: 0;
  • right: 0;
  • height: 10px;
  • /* background-image: linear-gradient(red 40%, green); */
  • background-image: linear-gradient(rgba(0, 0, 0, 0) 40%, #fff);
  • z-index: 1;
  • }
  • </style>
  • </head>
  • <body>
  • <!-- 窗口 -->
  • <div class="box">
  • <!-- 顶部、底部白色渐变 -->
  • <div class="header-blur"></div>
  • <div class="footer-blur"></div>
  • <!-- 轮播列表 -->
  • <ul>
  • <!-- 轮播主图 -->
  • <li><a href="#"><img src="./1.jpg" alt=""></a></li>
  • <li><a href="#"><img src="./2.jpg" alt=""></a></li>
  • <li><a href="#"><img src="./3.jpg" alt=""></a></li>
  • <li><a href="#"><img src="./4.jpg" alt=""></a></li>
  • <!-- 轮播完成防止留白 -->
  • <!-- 怎么确定尾部需要几张防止留白,1 张是怎么得出的?其实就是上面: 盒子高度 / 单个图片高度 = 一屏几张留白图 -->
  • <li><a href="#"><img src="./1.jpg" alt=""></a></li>
  • </ul>
  • </div>
  • </body>
  • </html>
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门