如何实现一个流畅的滚动列表

如何实现一个流畅的滚动列表

在网页开发中,滚动列表是展示大量数据时常用的交互方式。通过结合CSS动画和视觉设计,我们可以让列表内容自动滚动,为用户提供顺畅的浏览体验。今天,我将带你一步步实现一个流畅、富有视觉吸引力的滚动列表。


一、效果预览

在这里插入图片描述

最终实现的滚动列表效果如下:列表内容在页面加载后自动滚动,当用户将鼠标悬停在列表上时,动画暂停,鼠标移开后继续滚动。整个滚动过程平滑自然,并且配以简洁时尚的配色。


二、实现步骤
1. 创建基本的HTML结构

首先,我们需要定义一个容器(listWrap),里面包含滚动的列表项(list)。每一项列表元素将通过 <div> 标签定义。

<div class="listWrap"><div class="list"><div>Item 1</div><div>Item 2</div><div>Item 3</div><div>Item 4</div><div>Item 5</div><div>Item 6</div><div>Item 7</div><div>Item 8</div><div>Item 9</div><div>Item 10</div><div>Item 11</div><div>Item 12</div></div>
</div>
2. 编写CSS样式

接下来,通过CSS定义列表的尺寸、位置,以及滚动动画。这里的关键是使用 @keyframes 来实现元素的平滑滚动。

* {padding: 0;margin: 0;box-sizing: border-box;
}
body {font-family: Arial, sans-serif;background-color: #f0f0f0;
}
.listWrap {width: 600px;height: 200px;border-radius: 10px;border: 2px solid #ccc;overflow: hidden;margin: calc(50vh - 100px) auto;position: relative;box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1);background-color: #ffffff;
}
.listWrap:hover .list {animation-play-state: paused;
}
.list {position: absolute;transform: translateY(0); /* 确保初始时内容可见 */animation: scroll 12s linear infinite;
}
@keyframes scroll {0% {transform: translateY(0);}100% {transform: translateY(-100%);}
}
.list div {height: 40px;line-height: 40px;margin: 0 10px;font-size: 18px;color: #333;background: linear-gradient(135deg, #73a5ff, #5477f5);color: white;text-align: center;border-radius: 5px;margin-bottom: 10px;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
3. 样式说明
  • 列表容器 (listWrap):宽度设为 600px,高度为 200px,并应用圆角、阴影等样式来提升视觉美观。通过 overflow: hidden 隐藏超出的内容,确保列表在容器内滚动。
  • 滚动效果:通过 @keyframes 定义了 scroll 动画,列表从 translateY(0) 平滑滚动到 translateY(-100%),使列表项从上到下连续滚动。
  • 悬停暂停:在 listWrap:hover .list 中,使用 animation-play-state: paused;,当用户悬停在列表上时,动画暂停,离开时恢复滚动。

三、如何使用

你可以将上述代码直接嵌入你的HTML文件中,保存并运行后,即可看到滚动列表效果。如果你希望调整滚动速度,可以修改CSS中的动画时长(例如将 12s 调整为其他数值)。


四、总结

通过简单的HTML和CSS,我们实现了一个功能性强、视觉美观的滚动列表。无论是用于新闻展示、图片轮播,还是评论列表,这种滚动效果都能为你的网页增色不少。

你可以根据需要进一步优化,例如添加更多的视觉效果或将其改造成横向滚动。希望这个示例对你有所启发,助你在开发中更好地运用滚动效果。


如果你觉得这篇文章对你有帮助,记得 点赞收藏 支持一下!我是 Java全栈开发者,专注于分享实战经验和技术干货。

欢迎关注我的公众号 “Java全栈之旅”,定期推送 全栈技术分享面试题精解 以及趣味 小游戏Demo,让你轻松掌握前沿技术,快速进阶!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/145791.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

地平线占用预测 FlashOcc 参考算法-V1.0

1.简介 3D Occupancy Networks 的基本思路是将三维空间划分成体素网格&#xff0c;并对每个网格进行各类感知任务的预测。目前以网格为中心的方法能够预测每个网格单元的占用率、语义类别、未来运动位移和实例信息。3D occupancy 可以对道路障碍物进行更细粒度的划分&#xff…

如何利用nw.js打包vue项目

引言 最近有一个开发windows桌面应用的需求, 需要将vue项目打包成.exe文件&#xff0c;最好是变成可安装版(非绿色版)。特此记录一下如何通过nw.js将vue项目打包成.exe。可能这种方式不是最优&#xff0c;仅供大家参考&#xff01; nw.js简介&#xff08;以下描述来自nw.js官…

如何估算 Transformer 模型中的参数数量

最有效的理解新机器学习架构&#xff08;以及任何新技术&#xff09;的方式是从零开始实现它。虽然这种方法非常复杂、耗时&#xff0c;并且有时几乎不可能做到&#xff0c;但它能帮助你深入理解每一个实现细节。例如&#xff0c;如果你没有相应的计算资源或数据&#xff0c;你…

AI宠物拟人化新玩法,教你如何用0成本打造爆款创意内容!

近年来&#xff0c;随着AI技术的快速发展&#xff0c;各种创新玩法不断涌现&#xff0c;尤其是在内容创作领域&#xff0c;AI带来的变革尤为显著。 **其中&#xff0c;宠物拟人化逐渐成为社交媒体上的一大热门话题。**通过AI生成工具&#xff0c;我们不仅可以将宠物拟人化&…

面试面经|大模型算法岗常见面试题100道

本文提供了一份全面的大模型算法岗位面试题清单&#xff0c;包括基础理论、模型结构、训练微调策略、应用框架、分布式训练和模型推理等方面的知识点&#xff0c;旨在帮助求职者准备相关技术面试。 一、基础篇 1、目前主流的开源模型体系有哪些&#xff1f; Transformer体系&a…

基于yolov8和openpose人体骨骼关键点实现的摔倒姿态识别检测系统实现

【参考源码】 GitHub - HRonaldo/Openpose_YOLO 本项目参考上面框架进行全面改进&#xff0c;改进如下&#xff1a; &#xff08;1&#xff09;将检测框架换成当前最流行框架yolov8&#xff0c;并封装成类实现模块化设计。关于yolov5优化项目可以访问&#xff1a;https://bl…

队列的各种接口的实现(C)

队列的概念 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列具有先进先出FIFO(First In First Out) 入队列&#xff1a;进行插入操作的一端称为队尾 出队列&#xff1a;进行删除操作的一端称为队头 队列的实…

华为地图服务 - 如何在地图上绘制多边形? -- HarmonyOS自学16

场景介绍 本章节将向您介绍如何在地图上绘制多边形。 接口说明 添加多边形功能主要由MapPolygonOptions、addPolygon和MapPolygon提供&#xff0c;更多接口及使用方法请参见接口文档。 接口名 描述 MapPolygonOptions 用于描述MapPolygon属性。 addPolygon(options: mapC…

(八)使用Postman工具调用WebAPI

访问WebAPI的方法&#xff0c;Postman工具比SoapUI好用一些。 1.不带参数的get请求 [HttpGet(Name "GetWeatherForecast")] public IEnumerable<WeatherForecast> Get() {return Enumerable.Range(1, 5).Select(index > new WeatherForecast{Date DateT…

优优嗨聚集团:引领互联网服务新篇章

在当今这个日新月异的互联网时代&#xff0c;企业之间的竞争愈发激烈&#xff0c;如何高效地运营线上业务成为了众多商家关注的焦点。在这一背景下&#xff0c;四川优优嗨聚集团凭借其卓越的服务质量、创新的技术解决方案和强大的品牌影响力&#xff0c;逐渐成为了众多商家信赖…

【大模型教程】如何在Spring Boot中无缝集成LangChain4j,玩转AI大模型!

0 前言 LangChain4j 提供了用于以下功能的 Spring Boot 启动器&#xff1a; 常用集成声明式 AI 服务 1 常用集成的 Spring Boot starters Spring Boot 启动器帮助通过属性创建和配置 语言模型、嵌入模型、嵌入存储 和其他核心 LangChain4j 组件。 要使用 Spring Boot 启动…

基于MATLAB的虫害检测系统

课题背景介绍 中国为农业大国&#xff0c;因此在农业病虫害防治等方面积累了丰富的经验&#xff0c;但在实际工作过程中也存在许多问题。如过于依赖传统经验&#xff0c;对突如而来的新型病虫害问题研究不够到位&#xff0c;如由于判断者主观上面的一些模糊&#xff0c;而带来…

从零实现循环神经网络(二)

#本篇博客代码是基于上一篇《从零实现循环神经网络&#xff08;一&#xff09;》 上一篇网址&#xff1a;从零实现循环神经网络&#xff08;一&#xff09;-CSDN博客 1.初始化时返回隐藏层状态 def init_rnn_state(batch_size, num_hiddens, device):"""bat…

大神用一幅动态的风景画:让天气预报变得更生动

你有没有想过,有一天你可以不看那些冰冷的天气图表,而是通过一幅美丽的风景画就能知道明天的天气?想象一下,清晨醒来,打开手机,看到的不是一堆晦涩的数字,而是一幅阳光洒满草原的画,告诉你今天是个好天气。这就是现在逐渐兴起的一种新方式——通过风景图像来可视化天气…

【网络】高级IO——LT和ET

在上一篇的学习中&#xff0c;我们已经简单的使用了epoll的三个接口&#xff0c;但是仅仅了解那些东西是完全不够的&#xff01;&#xff01;接下来我们将更深入的学习epoll 1.epoll的两种工作模式——LT和ET 下面来举一个例子帮助大家理解ET和LT模式的区别&#xff08;送快递…

内存:生成式AI带来全新挑战与机遇

之前小编也写过多篇AI存储相关的文章&#xff0c;包括AI背景与分层存储的分析&#xff0c;以及AI存储重点从训练转向推理等内容。具体参考&#xff1a; 深度剖析&#xff1a;AI存储架构的挑战与解决方案 存储正式迈入超大容量SSD时代&#xff01; 这可能是最清晰的AI存储数据…

stack和queue(一)

接下来讲解一些stack栈和queue的简单使用 stack的概念 stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其删除只能从容器的一端进行 元素的插入与提取操作。 特性是先进先出 后进后出 构造一个栈堆 int main() {deque<int>…

vue项目加载cdn失败解决方法

注释index.html文件中 找到vue.config.js文件注释、

Spring IDEA 2024 自动生成get和set以及toString方法

1.简介 在IDEA中使用自带功能可以自动生成get和set以及toString方法 2.步骤 在目标类中右键&#xff0c;选择生成 选择Getter和Setter就可以生成每个属性对应的set和get方法&#xff0c; 选择toString就可以生成类的toString方法&#xff0c;

快速响应:提升前端页面加载速度技巧的必知策略方案

在本文中&#xff0c;我们将深入探讨导致页面加载缓慢的常见原因&#xff0c;并分享一系列切实可行的优化策略&#xff0c;无论你是刚入门的新手&#xff0c;还是经验丰富的开发者&#xff0c;这些技巧都将帮助你提升网页性能&#xff0c;让你的用户体验畅快无阻。 相信作为前端…