marquee

HTML5 marquee标签详解
本文深入探讨HTML5中marquee标签的使用方法,包括基本语法、关键属性及其实际应用案例,帮助理解如何创建动态滚动文本效果。
该标签不是HTML3.2的一部分,并且只支持MSIE3以后内核,所以如果你使用非IE内核浏览器(如:Netscape)可能无法看到下面一些很有意思的效果
该标签是个容器标签
语法:
<marquee></marquee>

以下是一个最简单的例子:

代码如下:
<marquee><font size=+3 color=red>Hello, World</font></marquee>
下面这两个事件经常用到:
onMouseOut="this.start()" :用来设置鼠标移出该区域时继续滚动
onMouseOver="this.stop()":用来设置鼠标移入该区域时停止滚动
代码如下:
<marquee onMouseOut="this.start()" onMouseOver="this.stop()">onMouseOut="this.start()" :用来设置鼠标移出该区域时继续滚动 onMouseOver="this.stop()":用来设置鼠标移入该区域时停止滚动</marquee>
这是一个完整的例子:

代码如下:
<marquee id="affiche" align="left" behavior="scroll" bgcolor="#FF0000" direction="up" height="300" width="200" hspace="50" vspace="20" loop="-1" scrollamount="10" scrolldelay="100" onMouseOut="this.start()" onMouseOver="this.stop()">
这是一个完整的例子
</marquee>

该标签支持的属性多达11个:

align
设定<marquee>标签内容的对齐方式
absbottom:绝对底部对齐(与g、p等字母的最下端对齐)
absmiddle:绝对中央对齐
baseline:底线对齐
bottom:底部对齐(默认)
left:左对齐
middle:中间对齐
right:右对齐
texttop:顶线对齐
top:顶部对齐

代码如下:
<marquee align="absbottom">align="absbottom":绝对底部对齐(与g、p等字母的最下端对齐)。 </marquee>
<marquee align="absmiddle">align="absmiddle": 绝对中央对齐。 </marquee>
<marquee align="baseline">align="baseline": 底线对齐。 </marquee>
<marquee align="bottom">align="bottom": 底部对齐(默认)。 </marquee>
<marquee align="left">align="left": 左对齐。 </marquee>
<marquee align="middle">align="middle": 中间对齐。 </marquee>
<marquee align="right">align="right": 右对齐。 </marquee>
<marquee align="texttop">align="texttop": 顶线对齐。 </marquee>
<marquee align="top">align="top": 顶部对齐。 </marquee>

behavior
设定滚动的方式:
alternate: 表示在两端之间来回滚动。
scroll: 表示由一端滚动到另一端,会重复。
slide: 表示由一端滚动到另一端,不会重复。
代码如下:
<marquee behavior="alternate">alternate:表示在两端之间来回滚动。 </marquee>
<marquee behavior="scroll">scroll:表示由一端滚动到另一端,会重复。</marquee>
<marquee behavior="slide">slide: 表示由一端滚动到另一端,不会重复。</marquee>

bgcolor
设定活动字幕的背景颜色,背景颜色可用RGB、16进制值的格式或颜色名称来设定。
代码如下:
<marquee bgcolor="#006699">设定活动字幕的背景颜色 bgcolor="#006699"</marquee>
<marquee bgcolor="RGB(10%,50%,100%,)">设定活动字幕的背景颜色 bgcolor="rgb(10%,50%,100%,)"</marquee>
<marquee bgcolor="red">设定活动字幕的背景颜色 bgcolor="red"</marquee>

direction
设定活动字幕的滚动方向
代码如下:
<marquee direction="down">设定活动字幕的滚动方向direction="down":向下</marquee>
<marquee direction="left">设定活动字幕的滚动方向direction="left":向左</marquee>
<marquee direction="right">设定活动字幕的滚动方向direction="right":向右</marquee>
<marquee direction="up">设定活动字幕的滚动方向direction="up":向上</marquee>

height
设定活动字幕的高度
代码如下:
<marquee height="500" direction="down" bgcolor="#CCCCCC">设定活动字幕的高度height="500"</marquee>

width
设定活动字幕的宽度
代码如下:
<marquee width="500" bgcolor="#CCCCCC">设定活动字幕的宽度width="500"</marquee>
hspace
设定活动字幕里所在的位置距离父容器水平边框的距离
This controls the horizontal(水平)space around the display box.
代码如下:
<table width="500" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><marquee hspace="100" bgcolor="#CCCCCC">hspace="100"</marquee></td>
</tr>
</table>

vspace
设定活动字幕里所在的位置距离父容器垂直边框的距离
This controls the vertical(垂直) space around the display box.
代码如下:
<marquee vspace="100" bgcolor="#CCCCCC">hspace="100"</marquee>
loop
设定滚动的次数,当loop=-1表示一直滚动下去,默认为-1
代码如下:
<marquee loop="-1" bgcolor="#CCCCCC">我会不停地走。</marquee>
<p>&nbsp;</p>
<marquee loop="2" bgcolor="#CCCCCC">我只走两次哦</marquee>

scrollamount
设定活动字幕的滚动速度,单位pixels
代码如下:
<marquee scrollamount="10" >scrollamount="10" </marquee>
<marquee scrollamount="20" >scrollamount="20" </marquee>
<marquee scrollamount="30" >scrollamount="30" </marquee>

scrolldelay
设定活动字幕滚动两次之间的延迟时间,单位millisecond(毫秒)
值大了会有一步一停顿的效果
代码如下:
<marquee scrolldelay="10" >scrolldelay="10" </marquee>
<marquee scrolldelay="100" > scrolldelay="100"</marquee>
<marquee scrolldelay="1000">scrolldelay="1000" </marquee>
---------------------------------------------------------------------
### HTML Marquee 标签的使用方法 `<marquee>` 是一个非标准的 HTML 标签,用于创建滚动文本或图像效果。尽管它在旧版浏览器中广泛支持,但由于其不属于 HTML5 标准,因此现代网页开发中不推荐使用。 基本语法如下: ```html <marquee>滚动内容</marquee> ``` 可以设置一些属性来控制滚动行为,例如 `direction`(方向)、`behavior`(行为)和 `scrollamount`(滚动速度)。以下是一个完整的示例: ```html <marquee direction="left" behavior="scroll" scrollamount="10">向左滚动的文字</marquee> ``` 该标签支持多种属性,包括但不限于: - `direction`:指定滚动方向(`left`, `right`, `up`, `down`) - `behavior`:定义滚动类型(`scroll`, `slide`, `alternate`) - `scrollamount`:控制滚动速度(数值越大越快) - `loop`:设定循环次数(默认为无限) 虽然 `<marquee>` 使用起来简单直观,但它缺乏良好的可访问性和响应式设计能力,并且无法通过 JavaScript 进行精细控制[^1]。 --- ### 替代方案 #### 1. 使用 CSS 实现滚动文本效果 CSS 提供了更加灵活的方式来实现滚动文本效果,尤其适用于现代 Web 开发中的响应式设计需求。可以通过 `@keyframes` 动画来实现横向滚动效果。 ```css .marquee { white-space: nowrap; overflow: hidden; box-sizing: border-box; width: 320px; } .marquee span { display: inline-block; padding-left: 100%; animation: marquee 10s linear infinite; } @keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-100%); } } ``` HTML 结构如下: ```html <div class="marquee"> <span>使用 CSS 实现的滚动文本</span> </div> ``` 此方法允许开发者完全控制动画的速度、持续时间以及重复方式,同时保持良好的跨浏览器兼容性[^1]。 --- #### 2. 使用 JavaScript/jQuery 实现滚动文本 对于需要更多交互功能的情况,可以借助 JavaScript 或 jQuery 来实现更复杂的滚动逻辑。下面是一个基于 jQuery 的简单实现示例: ```javascript $(document).ready(function() { $('.js-marquee').each(function() { var $this = $(this), textWidth = $this.find('span').width(), containerWidth = $this.width(); if (textWidth > containerWidth) { $this.append($this.html()); // 复制内容以实现无缝滚动 function animate() { $this.animate({ left: -textWidth }, 6000, 'linear', function() { $this.css('left', 0); animate(); }); } animate(); } }); }); ``` 对应的 HTML 和 CSS 如下: ```html <div style="width:320px; margin:30px auto; border:solid 1px #999;"> <div class="js-marquee"> <span>使用 JavaScript 实现的滚动文本</span> </div> </div> ``` ```css .js-marquee { position: relative; overflow: hidden; white-space: nowrap; height: 24px; } .js-marquee span { position: absolute; display: block; } ``` 这种方法提供了更高的灵活性,可以通过编程方式动态调整滚动行为,甚至可以根据用户的操作触发不同的滚动效果[^2]。 --- #### 3. 在 Vue 中实现滚动文本组件 如果你正在使用 Vue 框架进行开发,可以封装一个自定义组件来替代 `<marquee>` 标签。以下是基于 Vue 的实现思路: ```vue <template> <div class="vue-marquee" ref="container"> <div class="track" :style="{ transform: 'translateX(' + offset + 'px)' }"> {{ message }} </div> </div> </template> <script> export default { props: ['message'], data() { return { offset: 0, speed: 2 }; }, mounted() { this.startScroll(); }, methods: { startScroll() { const container = this.$refs.container; const track = document.querySelector('.track'); const textWidth = track.offsetWidth; setInterval(() => { this.offset -= this.speed; if (Math.abs(this.offset) >= textWidth / 2) { this.offset = 0; } }, 30); } } }; </script> <style scoped> .vue-marquee { overflow: hidden; white-space: nowrap; width: 320px; margin: 30px auto; border: solid 1px #999; } .track { display: inline-block; transition: transform 0.5s linear; } </style> ``` 在页面中调用该组件的方式非常简单: ```vue <template> <div id="app"> <vue-marquee :message="msg"></vue-marquee> </div> </template> <script> import VueMarquee from './components/VueMarquee.vue'; export default { components: { VueMarquee }, data() { return { msg: 'Vue 实现的滚动文本' }; } }; </script> ``` 这种方式不仅符合 Vue 的组件化思想,还能够很好地与其他 Vue 特性集成,如数据绑定、生命周期钩子等[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值