上一篇
HTML中,可通过CSS动画或JavaScript实现字体闪烁,CSS使用@keyframes定义关键帧改变透明度,如
.blinking-text {animation: blink 1s infinite;};JavaScript用setInterval函数控制可见性切换
HTML中实现字体闪烁效果,可以通过多种方法实现,以下是几种常见且推荐的方式:
使用CSS动画
基本实现
通过CSS的@keyframes定义关键帧动画,控制文字透明度的变化,从而实现闪烁效果,以下是一个简单的示例:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">CSS实现字体闪烁</title>
<style>
@keyframes blink {
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 1; }
}
.blinking-text {
animation: blink 1s infinite; / 每秒闪烁一次,无限循环 /
color: red; / 可选:设置文字颜色 /
font-size: 24px; / 可选:设置文字大小 /
}
</style>
</head>
<body>
<p class="blinking-text">这是闪烁的文字</p>
</body>
</html>
原理:
@keyframes定义了名为blink的动画,从完全透明(opacity: 0)到完全不透明(opacity: 1)循环变化。animation属性将动画应用到.blinking-text类,设置动画持续时间为1秒,并无限循环。
优化与调整
可以根据需求调整动画的持续时间、延迟、次数等。

.blinking-text {
animation: blink 2s ease-in-out infinite; / 2秒完成一次闪烁,使用缓动效果 /
color: blue; / 修改文字颜色 /
font-weight: bold; / 加粗文字 /
}
兼容性处理
为了兼容不同浏览器,可以添加CSS前缀:
@-webkit-keyframes blink { / Safari和Chrome /
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 1; }
}
@-moz-keyframes blink { / Firefox /
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 1; }
}
.blinking-text {
-webkit-animation: blink 1s infinite;
-moz-animation: blink 1s infinite;
animation: blink 1s infinite;
}
使用JavaScript
基本实现
通过setInterval定时切换文字的可见性(visibility属性),实现闪烁效果:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">JS实现字体闪烁</title>
<style>
.blinking-text {
font-size: 24px; / 可选:设置文字大小 /
color: green; / 可选:设置文字颜色 /
}
</style>
</head>
<body>
<p id="blinkingText" class="blinking-text">这是闪烁的文字</p>
<script>
const blinkElement = document.getElementById('blinkingText');
setInterval(() => {
blinkElement.style.visibility = (blinkElement.style.visibility === 'hidden' ? '' : 'hidden');
}, 1000); // 每秒切换一次可见性
</script>
</body>
</html>
原理:
setInterval每1秒执行一次函数,切换visibility属性在visible和hidden之间。- 初始状态为可见(
visibility默认值为visible)。
优化与控制
可以增加控制开关,允许用户手动启动或停止闪烁:

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">JS控制字体闪烁</title>
<style>
.blinking-text {
font-size: 24px;
color: orange;
}
</style>
</head>
<body>
<p id="blinkingText" class="blinking-text">这是可控制的文字</p>
<button onclick="toggleBlink()">切换闪烁</button>
<script>
let isBlinking = true;
const blinkElement = document.getElementById('blinkingText');
const blinkInterval = setInterval(() => {
if (isBlinking) {
blinkElement.style.visibility = (blinkElement.style.visibility === 'hidden' ? '' : 'hidden');
}
}, 1000);
function toggleBlink() {
isBlinking = !isBlinking;
}
</script>
</body>
</html>
传统HTML标签(不推荐)
使用<blink> 在HTML早期版本中,可以使用<blink>标签实现文字闪烁,但该标签已被废弃,现代浏览器可能不支持。
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">传统标签实现闪烁</title>
</head>
<body>
<blink>这是过时的闪烁方式</blink>
</body>
</html> 缺点:

- 不符合现代HTML标准,兼容性差。
- 用户体验不佳,可能引发光敏性癫痫等问题。
综合应用与注意事项
结合CSS和JavaScript
可以通过JavaScript动态控制CSS动画的播放状态,实现更复杂的交互效果。
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">综合实现闪烁</title>
<style>
@keyframes blink {
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 1; }
}
.blinking-text {
animation: blink 1s infinite;
color: purple;
font-size: 20px;
}
</style>
</head>
<body>
<p id="blinkingText" class="blinking-text">综合实现的文字</p>
<button onclick="toggleBlink()">暂停/恢复闪烁</button>
<script>
const blinkElement = document.getElementById('blinkingText');
function toggleBlink() {
if (blinkElement.style.animationPlayState === 'paused') {
blinkElement.style.animationPlayState = 'running';
} else {
blinkElement.style.animationPlayState = 'paused';
}
}
</script>
</body>
</html> 实际应用场景
- 强调重要信息:在表单中提示必填字段或错误信息。
- 动态通知:在实时系统中显示新消息或警报。
- 广告横幅:吸引用户注意力的促销信息。
注意事项
- 用户体验:避免过度使用闪烁效果,可能引起用户不适或视觉疲劳。
- 性能优化:尽量减少DOM操作和复杂动画,确保页面流畅。
- 兼容性:测试在不同浏览器和设备上的表现,必要时添加前缀或降级方案。
FAQs(常见问题解答)
如何让字体闪烁得更慢或更快?
解答:通过调整CSS动画的持续时间(animation-duration)或JavaScript的定时器间隔(setInterval时间)来控制闪烁速度。
- CSS中将
animation: blink 2s infinite;改为animation: blink 0.5s infinite;,可使闪烁加快。
- JavaScript中将
setInterval的第二个参数改为500(毫秒),可使闪烁加快。
为什么<blink>标签在现代浏览器中不起作用?
解答:<blink>标签是HTML早期版本的非标准标签,现代浏览器已不再支持它,闪烁效果可能对部分用户(如光敏性癫痫患者)造成不适,因此被废弃,推荐使用CSS动画或JavaScript实现更安全、可控的闪烁
在HTML早期版本中,可以使用<blink>标签实现文字闪烁,但该标签已被废弃,现代浏览器可能不支持。
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">传统标签实现闪烁</title>
</head>
<body>
<blink>这是过时的闪烁方式</blink>
</body>
</html> 缺点:

- 不符合现代HTML标准,兼容性差。
- 用户体验不佳,可能引发光敏性癫痫等问题。
综合应用与注意事项
结合CSS和JavaScript
可以通过JavaScript动态控制CSS动画的播放状态,实现更复杂的交互效果。
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">综合实现闪烁</title>
<style>
@keyframes blink {
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 1; }
}
.blinking-text {
animation: blink 1s infinite;
color: purple;
font-size: 20px;
}
</style>
</head>
<body>
<p id="blinkingText" class="blinking-text">综合实现的文字</p>
<button onclick="toggleBlink()">暂停/恢复闪烁</button>
<script>
const blinkElement = document.getElementById('blinkingText');
function toggleBlink() {
if (blinkElement.style.animationPlayState === 'paused') {
blinkElement.style.animationPlayState = 'running';
} else {
blinkElement.style.animationPlayState = 'paused';
}
}
</script>
</body>
</html> 实际应用场景
- 强调重要信息:在表单中提示必填字段或错误信息。
- 动态通知:在实时系统中显示新消息或警报。
- 广告横幅:吸引用户注意力的促销信息。
注意事项
- 用户体验:避免过度使用闪烁效果,可能引起用户不适或视觉疲劳。
- 性能优化:尽量减少DOM操作和复杂动画,确保页面流畅。
- 兼容性:测试在不同浏览器和设备上的表现,必要时添加前缀或降级方案。
FAQs(常见问题解答)
如何让字体闪烁得更慢或更快?
解答:通过调整CSS动画的持续时间(animation-duration)或JavaScript的定时器间隔(setInterval时间)来控制闪烁速度。
- CSS中将
animation: blink 2s infinite;改为animation: blink 0.5s infinite;,可使闪烁加快。 - JavaScript中将
setInterval的第二个参数改为500(毫秒),可使闪烁加快。
为什么<blink>标签在现代浏览器中不起作用?
解答:<blink>标签是HTML早期版本的非标准标签,现代浏览器已不再支持它,闪烁效果可能对部分用户(如光敏性癫痫患者)造成不适,因此被废弃,推荐使用CSS动画或JavaScript实现更安全、可控的闪烁
