创建平滑的纯 CSS 文本滑块

创建平滑的纯 css 文本滑块

本文将指导你如何使用纯 CSS 创建一个平滑的文本滑块,解决文本重叠问题,并实现从右向左的滑动效果。通过调整关键帧的 left 属性,使文本在完全移出屏幕后才进行重置,从而避免滑动时的重叠现象,最终实现流畅的视觉体验。本教程提供详细的代码示例和关键步骤,助你轻松构建出美观实用的 CSS 文本滑块。

实现原理

核心思想在于控制每个文本项的 left 属性,使其从屏幕右侧移入,在屏幕上停留一段时间,然后移出屏幕左侧,并保持在屏幕外。在动画循环开始时,将文本项瞬间重置到屏幕右侧,由于这个重置没有动画效果,所以用户不会看到。

具体步骤

HTML 结构

使用包含多个文本项的容器。每个文本项都应设置为绝对定位,以便可以通过 CSS 动画控制其位置。

立即学习“前端免费学习笔记(深入)”;

Fast Shipping
100 Days Right of Return
Buy with Invoice
Proven Quality

这里使用了 Bootstrap 的类来辅助布局,并使用了 Font Awesome 的图标。

CSS 样式

设置容器的样式,例如背景颜色、字体颜色、字体大小和内边距。设置文本项的样式,例如绝对定位。定义关键帧动画,控制每个文本项的 left 属性。

.trev-top-bar {  background-color: #256dff;  color: #fff;  font-size: 14px;  padding-top: 1rem;  padding-bottom: 1rem;}.trev-top-bar .trev-top-bar-item:first-child {  -webkit-animation: top-bar-animation-1 16s ease infinite;  animation: top-bar-animation-1 16s ease infinite;}.trev-top-bar .trev-top-bar-item:nth-child(2) {  -webkit-animation: top-bar-animation-2 16s ease infinite;  animation: top-bar-animation-2 16s ease infinite;}.trev-top-bar .trev-top-bar-item:nth-child(3) {  -webkit-animation: top-bar-animation-3 16s ease infinite;  animation: top-bar-animation-3 16s ease infinite;}.trev-top-bar .trev-top-bar-item:nth-child(4) {  -webkit-animation: top-bar-animation-4 16s ease infinite;  animation: top-bar-animation-4 16s ease infinite;}.trev-top-bar .trev-top-bar-fa-icon,.trev-top-bar .icon {  color: #fff;  margin-right: .3rem;}.trev-top-bar .trev-top-bar-fa-icon {  font-size: 16px;}.trev-top-bar .icon svg {  width: 16px;  height: 16px;}@keyframes top-bar-animation-1 {  0% {    left: 100%;  }  8.33% {    left: 0;  }  16.66% {    left: 0;  }  24.99% {    left: -100%;  }  100% {    left: -100%;  }}@keyframes top-bar-animation-2 {  0% {    left: 100%;  }  24.99% {    left: 100%;  }  33.33% {    left: 0;  }  41.66% {    left: 0;  }  49.99% {    left: -100%;  }  100% {    left: -100%;  }}@keyframes top-bar-animation-3 {  0% {    left: 100%;  }  49.99% {    left: 100%;  }  58.33% {    left: 0;  }  66.66% {    left: 0;  }  74.99% {    left: -100%;  }  100% {    left: -100%;  }}@keyframes top-bar-animation-4 {  0% {    left: 100%;  }  74.99% {    left: 100%;  }  83.33% {    left: 0;  }  91.66% {    left: 0;  }  100% {    left: -100%;  }}

关键帧的解释:

0%: 文本项位于屏幕右侧 (left: 100%)。8.33% (对于第一个文本项): 文本项开始进入屏幕 (left: 0)。16.66% (对于第一个文本项): 文本项完全显示在屏幕上 (left: 0)。24.99% (对于第一个文本项): 文本项开始移出屏幕 (left: -100%)。100%: 文本项完全移出屏幕 (left: -100%)。

注意,每个文本项的动画开始时间都不同,以实现连续的滑动效果。 调整 animation-delay 可以控制每个文本项的出现时间。

引入必要的库

确保引入 Font Awesome 和 Bootstrap 的 CSS 文件。


注意事项

确保容器具有 overflow: hidden 样式,以防止文本项溢出。根据实际需求调整动画时间和延迟,以获得最佳的视觉效果。避免在关键帧中使用不必要的中间状态,简化动画过程。如果需要支持更复杂的动画效果(例如淡入淡出),可以考虑使用 JavaScript 来辅助实现。

总结

通过以上步骤,你可以使用纯 CSS 创建一个平滑的文本滑块,避免文本重叠问题,并实现从右向左的滑动效果。 这种方法简单易懂,无需依赖 JavaScript,适用于对性能要求较高的场景。 掌握这种技术,可以为你的网站或应用程序增加吸引人的动态效果。

以上就是创建平滑的纯 CSS 文本滑块的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1573565.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月22日 15:33:15
下一篇 2025年12月22日 15:33:23

相关推荐

  • 创建流畅的纯CSS文本轮播

    本文将指导你如何使用纯CSS创建一个平滑过渡的文本轮播,避免文本重叠问题。通过调整关键帧动画,控制元素的left属性,实现从右到左的无缝滚动效果。我们将提供详细的代码示例和关键步骤,助你轻松构建出美观且实用的文本轮播组件。 纯CSS文本轮播实现详解 创建一个纯CSS文本轮播,关键在于使用@keyfr…

    2025年12月22日
    000
  • CSS技巧:不修改HTML结构实现引用块(Blockquote)两列布局

    本教程探讨如何在不改变现有HTML结构的前提下,利用CSS将特定元素(如 )呈现为两列布局。文章详细阐述了通过display: inline-block和width: calc()实现这一效果的核心原理、具体CSS代码,并深入分析了该方法的适用场景及潜在的视觉局限性,为前端开发者提供一种实用的布局解…

    2025年12月22日
    000
  • CSS实现无需结构修改的两列引用块布局

    本文详细介绍了如何在不修改现有HTML结构的前提下,利用CSS的display: inline-block和calc()函数,为 元素创建两列布局效果。教程涵盖了核心实现原理、示例代码以及该方法的局限性,特别强调了在内容高度不一致时可能出现的问题,并提供了专业建议。核心实现原理在Web开发中,我们经…

    2025年12月22日
    000
  • CSS实现不改变HTML结构的两列引用块布局

    本教程介绍如何在不修改现有HTML结构的前提下,利用CSS将 元素呈现为两列布局。通过应用display: inline-block和width: calc(50% – X)等CSS属性,可以模拟出并排显示的效果。文章将详细阐述实现方法、提供代码示例,并指出这种非真正列布局方式在处理高度…

    2025年12月22日
    000
  • 为多个P标签应用独立CSS样式:ID、Class与内联样式指南

    本文深入探讨了在CSS中为多个 标签应用独立样式(尤其是不同颜色)的几种高效方法。我们将详细介绍如何利用id选择器、class选择器以及内联样式来实现精细化控制,并通过代码示例阐述其用法、适用场景及最佳实践,旨在帮助开发者构建更灵活、可维护的网页样式。 在网页开发中,我们经常会遇到需要对同类型HTM…

    2025年12月22日
    000
  • 如何为多个HTML段落(标签)设置独立颜色样式

    本教程旨在解决CSS中为多个 标签设置独立样式的问题。我们将详细探讨如何利用id选择器、class选择器以及内联样式这三种核心方法,实现对不同段落元素的精确样式控制,从而避免重复的标签选择器,提高代码的可维护性和灵活性。 在网页开发中,我们经常会遇到需要为多个HTML段落( 标签)应用不同样式(例如…

    2025年12月22日
    000
  • 为多个P标签设置不同颜色:CSS选择器的应用

    本文介绍了在CSS中为多个 标签设置不同颜色的几种方法。主要包括使用ID选择器、类选择器以及内联样式。通过示例代码,详细讲解了每种方法的实现方式和适用场景,帮助开发者灵活运用CSS选择器,实现个性化的页面样式设计。 当需要在网页中为多个 标签设置不同的颜色时,直接使用p选择器会使所有段落应用相同的样…

    2025年12月22日
    000
  • 如何在网页中实现交互式图片裁剪功能

    本教程详细介绍了如何在网页中实现客户端图片裁剪功能,利用Croppie.js库结合HTML和CSS构建用户界面,并通过JavaScript处理文件上传、实时预览和最终裁剪操作。文章涵盖了环境搭建、核心代码实现以及关键API的使用,旨在帮助开发者为用户提供直观的图片编辑体验。 客户端图片裁剪技术详解 …

    2025年12月22日
    000
  • CSS Backdrop-filter 与 Z-index 冲突的解决方案

    本文档旨在解决 CSS 中 backdrop-filter 属性与 z-index 属性同时使用时可能出现的层叠问题。当元素应用了 backdrop-filter 后,z-index 属性可能无法正常工作,导致元素层叠顺序混乱。本文将提供一种简单有效的解决方案,确保这两个属性能够协同工作,实现预期的…

    2025年12月22日
    000
  • 解决 CSS 中 backdrop-filter 与 z-index 冲突的问题

    解决 CSS 中 backdrop-filter 与 z-index 冲突的问题。 在使用 CSS 创建具有视觉层次感的设计时,z-index 属性用于控制元素的堆叠顺序。然而,当元素同时应用了 backdrop-filter 属性时,z-index 属性可能无法按预期工作,导致元素无法正确地显示在…

    2025年12月22日
    000
  • 利用HTML、CSS和JavaScript实现客户端图片裁剪功能指南

    本教程将详细介绍如何利用HTML、CSS和JavaScript,特别是通过Croppie.js库,在网页中实现交互式客户端图片裁剪功能。文章将涵盖从构建基本HTML结构、应用CSS样式到编写JavaScript逻辑的完整过程,旨在帮助开发者轻松集成图片上传、预览及自定义裁剪功能,从而优化用户体验并满…

    2025年12月22日
    000
  • jQuery中动态生成按钮的事件委托与属性获取指南

    本教程详细阐述了在jQuery中如何有效地处理动态添加到DOM的按钮事件。针对传统事件绑定对动态元素无效的问题,文章重点介绍了事件委托机制,并演示了如何利用$(document).on()方法监听动态按钮的点击事件,以及在事件回调中准确获取被点击按钮的ID和值等属性。 在现代web开发中,页面内容经…

    2025年12月22日
    000
  • 使用 JavaScript 从表单收集数据并存储到变量中

    本文将介绍如何使用 JavaScript 的 FormData 对象,高效地从 HTML 表单中收集数据,并将其存储到变量中以便后续使用。通过示例代码和详细解释,您将学会如何简化表单数据处理流程,避免繁琐的单个元素选择和赋值操作。 使用 FormData 对象收集表单数据 JavaScript 的 …

    2025年12月22日
    000
  • React中FontAwesome图标的正确集成:CDN与NPM包的选择与实践

    本文旨在解决React应用中FontAwesome图标不显示的问题,核心在于明确FontAwesome的两种主要集成方式——CDN引入与NPM包(@fortawesome/react-fontawesome)引入——并强调避免混用。教程将详细指导如何根据项目需求选择并正确实践其中一种方法,提供示例代…

    2025年12月22日
    000
  • 使用JavaScript FormData API高效收集HTML表单数据

    本文详细介绍了如何利用JavaScript的FormData API高效地从HTML表单中收集数据,避免了逐个元素查询的繁琐。我们将学习如何实例化FormData对象,遍历并获取表单字段的值,以及将其存储或用于后续处理,从而简化前端数据收集流程。 传统表单数据收集的挑战 在前端开发中,我们经常需要从…

    2025年12月22日
    000
  • 使用JavaScript FormData API高效收集表单数据

    本教程将深入探讨如何利用JavaScript的FormData API高效地从HTML表单中收集所有输入数据。告别逐个元素选择的繁琐,FormData提供了一种简洁且标准化的方法,将表单字段及其值封装成一个可迭代的对象。文章将详细介绍如何创建FormData对象,访问和遍历其数据,并提供实用的代码示…

    2025年12月22日
    000
  • 使用 JavaScript FormData 对象高效收集表单数据并存储到变量

    第一段引用上面的摘要: 本文介绍了如何使用 JavaScript 的 FormData 对象,以简洁高效的方式从 HTML 表单中收集数据。通过 FormData 对象,你可以轻松地获取表单中所有输入字段的值,并将它们存储到变量中,方便后续操作,例如数据验证、发送到服务器等。 使用 FormData…

    2025年12月22日
    000
  • CSS图片尺寸调整疑难解答:属性选择器精度与最佳实践

    本文探讨了CSS中图片尺寸无法调整的常见原因,特别是当使用属性选择器img[src=’…’]时因src值不匹配导致样式失效的问题。教程将详细解释如何精确匹配选择器,并推荐使用更稳健的类(class)或ID选择器进行样式控制,以提升代码的可维护性和效率。 在web开…

    2025年12月22日 好文分享
    000
  • Vue应用中安全可靠地复制文本到剪贴板:解决兼容性与权限问题

    本文探讨了在JavaScript和Vue应用中实现文本复制到剪贴板时,navigator.clipboard.writeText方法可能遇到的兼容性或安全限制问题。针对此挑战,教程提供了一种健壮的替代方案:通过动态创建并操作一个不可见的textarea元素,结合document.execComman…

    2025年12月22日
    000
  • 使用 JavaScript 检测在线/离线状态:一个实用教程

    本文旨在解决使用 JavaScript 检测用户在线/离线状态时遇到的问题。通过分析常见错误,并提供改进后的代码示例,详细讲解如何正确监听 online 和 offline 事件,并利用 HTML 属性和 CSS 选择器来动态更新用户状态的显示。帮助开发者构建更健壮的网络状态感知应用。 在使用 Ja…

    2025年12月22日
    000

发表回复

登录后才能评论
关注微信