首页 > 其他分享 >如何使用纯HTML实现跑马灯的效果?

如何使用纯HTML实现跑马灯的效果?

时间:2024-12-10 09:57:21浏览次数:8  
标签:动画 滚动 效果 marquee 跑马灯 HTML 使用 CSS

可以使用纯 HTML 的 <marquee> 标签实现跑马灯效果,虽然它已经不被推荐使用,但在某些简单的场景下仍然有效。 现代前端开发更推荐使用 CSS animations 或 JavaScript 来实现更灵活和可控的跑马灯效果。

以下是使用 <marquee> 的几种方式:

<!DOCTYPE html>
<html>
<head>
<title>跑马灯示例</title>
</head>
<body>

<!-- 简单的跑马灯,从右向左滚动 -->
<marquee>这是一条简单的跑马灯文本。</marquee>

<!-- 控制方向 -->
<marquee direction="right">从左向右滚动</marquee>
<marquee direction="up">从下向上滚动</marquee>
<marquee direction="down">从上向下滚动</marquee>

<!-- 控制速度 -->
<marquee scrollamount="10">快速滚动</marquee>
<marquee scrollamount="1">慢速滚动</marquee>

<!-- 控制行为 -->
<marquee behavior="scroll">循环滚动</marquee>
<marquee behavior="slide">滚动一次后停止</marquee>
<marquee behavior="alternate">来回滚动</marquee>

<!-- 控制循环次数 -->
<marquee loop="2">滚动两次</marquee>
<marquee loop="infinite">无限循环滚动</marquee>

<!-- 设置宽度和高度 -->
<marquee width="200" height="50" bgcolor="yellow">指定宽度和高度的跑马灯</marquee>

</body>
</html>

<marquee> 标签的属性:

  • direction: 滚动方向。 left (默认), right, up, down
  • behavior: 滚动行为。 scroll (默认, 循环滚动), slide (滚动一次后停止), alternate (来回滚动)。
  • loop: 循环次数。 可以是数字或 infinite (无限循环)。
  • scrollamount: 滚动速度,值越大速度越快。
  • scrolldelay: 滚动延迟,单位是毫秒。
  • bgcolor: 背景颜色。
  • width: 跑马灯宽度。
  • height: 跑马灯高度。

为什么不推荐使用 <marquee>

  • 过时: <marquee> 标签在 HTML5 规范中已被废弃,不保证在未来的浏览器版本中得到支持。
  • 可访问性差: 持续滚动的文本可能会对某些用户造成阅读困难,尤其是有阅读障碍的用户。
  • 控制不够灵活: <marquee> 的样式和动画控制能力有限,难以实现复杂的动画效果。

更佳的替代方案:

使用 CSS animations 或 JavaScript 可以实现更灵活、更现代、可访问性更好的跑马灯效果。 以下是一个简单的 CSS animation 例子:

<!DOCTYPE html>
<html>
<head>
<title>CSS 跑马灯</title>
<style>
.marquee {
  width: 200px;
  overflow: hidden;
  white-space: nowrap; /* 防止文本换行 */
}
.marquee span {
  display: inline-block;
  padding-left: 100%; /* 初始位置在容器外部 */
  animation: marquee 5s linear infinite; /* 动画持续时间、速度、循环 */
}

@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100%); }
}
</style>
</head>
<body>

<div class="marquee">
  <span>使用 CSS 实现的跑马灯</span>
</div>

</body>
</html>

这个例子使用 CSS transform 属性和 animation 实现跑马灯效果,比 <marquee> 更灵活,也更容易控制样式和动画。 你可以根据需要调整动画的速度、方向和其他参数。 对于更复杂的跑马灯效果,可以使用 JavaScript 来实现更精细的控制。

标签:动画,滚动,效果,marquee,跑马灯,HTML,使用,CSS
From: https://www.cnblogs.com/ai888/p/18596706

相关文章

  • 使用css3实现小车行驶的动画效果
    <!DOCTYPEhtml><html><head><title>CarAnimation</title><style>body{background-color:#f0f0f0;}.container{width:800px;height:200px;margin:50pxauto;border:1pxsolid#ccc;position:relative......
  • html的开始与结束标签嵌套错误会导致哪些问题?
    HTML标签嵌套错误会导致一系列问题,从轻微的显示异常到严重的页面崩溃。以下是几种常见的情况以及它们可能造成的影响:1.显示错乱:重叠或错位的元素:错误的嵌套会导致元素的布局和定位出现问题。例如,如果一个<div>内部错误地嵌套了另一个未正确闭合的<div>,可能会导致内部的......
  • 使用css制作吊扇转动的效果
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>RotatingCeilingFan</t......
  • html哪个标签属性可以通过预解析DNS?
    <linkrel="dns-prefetch"href="//example.com">可以用来预解析DNS。这个标签放在HTML的<head>部分,告诉浏览器在空闲时间预先解析指定域名的DNS记录。这样,当用户实际点击指向该域名的链接时,DNS解析已经完成,可以加快页面加载速度。例如,如果你的页面有很多链接指向exa......
  • 使用css3制作雪花效果
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>SnowfallEffect</title&......
  • html的哪个标签可以预加载?
    <linkrel="preload">标签可以用来预加载资源。它告诉浏览器,这个资源对当前页面来说是必要的,并且应该尽快下载。这与浏览器通常的加载行为不同,浏览器通常会等到解析HTML并构建DOM树后,才会下载一些资源(例如CSS和JavaScript)。使用preload可以提前告知浏览器需要下载这......
  • html的哪个标签可以预渲染?
    <linkrel="preload">可以用来预渲染资源。虽然它本身不是严格意义上的“渲染”,而是“预加载”,但在很多情况下,它能起到和预渲染类似的效果,因为它允许浏览器提前加载关键资源,从而加快页面的渲染速度。<linkrel="prerender">虽然名字听起来像预渲染,但它实际上是预先加载并渲......
  • 前端 js + html + css 特效 001
    <!DOCTYPEhtml><htmllang="en"><head><title>CodeTheWorld-Electricstrings</title><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><sc......
  • Axure交互效果2
    --本篇导航--APP刷新提示推拉效果呼出登录键盘母版元件实现导航栏跳转全局变量交互2APP刷新提示推拉效果刷新提示的弹窗的状态为显示、等待、隐藏,文字或图标显示出刷新中、刷新完成。同一元件有2种状态,可以使用动态面板实现。呼出登录键盘登录时有手机号和......
  • HTML列表
    HTML列表无序列表:此项目使用粗体圆点进行标记使用<ul>标签<ul><li>这是一个无序列表</li><li>333333</li></ul>有序列表:此项目使用数字进行标记使用<ol>标签<ol><li>这是一个有序列表</li><li>717</li></ol>自定义列表:自定义列表不仅仅是一列项目,而是项......