当前位置:首页 > JavaScript

js 实现闪烁

2026-03-13 21:13:25JavaScript

使用 CSS 动画实现闪烁

通过 animation@keyframes 定义透明度变化实现闪烁效果。CSS 动画性能更优,适合简单场景。

.blink {
  animation: blink 1s infinite;
}
@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}
<div class="blink">闪烁内容</div>

使用 JavaScript 定时器实现闪烁

通过 setInterval 动态修改元素的 style.opacity 属性,适合需要精细控制闪烁逻辑的场景。

const element = document.getElementById('blink-element');
let visible = true;
setInterval(() => {
  visible = !visible;
  element.style.opacity = visible ? '1' : '0';
}, 500);

使用类切换实现闪烁

通过定时切换 CSS 类实现,可复用 CSS 样式且便于维护。

.blink-off {
  opacity: 0;
  transition: opacity 0.3s;
}
const element = document.getElementById('blink-element');
setInterval(() => {
  element.classList.toggle('blink-off');
}, 500);

使用 requestAnimationFrame 实现高性能闪烁

适合需要平滑动画或复杂闪烁模式的场景,避免定时器卡顿。

js 实现闪烁

const element = document.getElementById('blink-element');
let startTime = null;
function blink(timestamp) {
  if (!startTime) startTime = timestamp;
  const elapsed = timestamp - startTime;
  const progress = (elapsed % 1000) / 1000;
  element.style.opacity = Math.abs(0.5 - progress) * 2;
  requestAnimationFrame(blink);
}
requestAnimationFrame(blink);

注意事项

  • CSS 动画方案在移动端性能更好
  • JavaScript 方案需注意清除定时器(clearInterval
  • 高频闪烁(>5Hz)可能引发癫痫,需谨慎使用
  • 考虑添加 prefers-reduced-motion 媒体查询为动效敏感用户提供替代方案

标签: js
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现轮播图

js实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与响应式…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…