当前位置:首页 > JavaScript

js实现闪烁效果

2026-01-30 14:15:31JavaScript

使用 CSS 动画实现闪烁

通过 @keyframes 定义动画,结合 opacitybackground-color 属性实现闪烁效果:

.blink {
  animation: blink 1s infinite;
}

@keyframes blink {
  0% { opacity: 1; }
  50% { opacity: 0; }
  100% { opacity: 1; }
}

JavaScript 动态添加类名:

const element = document.getElementById('target');
element.classList.add('blink');

使用 setInterval 定时切换样式

通过定时修改元素的 visibilitydisplay 属性实现闪烁:

js实现闪烁效果

const element = document.getElementById('target');
let visible = true;

setInterval(() => {
  visible = !visible;
  element.style.visibility = visible ? 'visible' : 'hidden';
}, 500);

使用 requestAnimationFrame 高性能动画

通过递归调用 requestAnimationFrame 实现平滑闪烁:

const element = document.getElementById('target');
let startTime = null;

function blink(timestamp) {
  if (!startTime) startTime = timestamp;
  const elapsed = timestamp - startTime;
  const progress = (elapsed % 1000) / 1000;

  element.style.opacity = Math.abs(progress - 0.5) * 2;
  requestAnimationFrame(blink);
}

requestAnimationFrame(blink);

颜色闪烁效果

修改元素的背景色或文字颜色实现彩色闪烁:

js实现闪烁效果

const element = document.getElementById('target');
const colors = ['red', 'blue', 'green', 'yellow'];
let index = 0;

setInterval(() => {
  element.style.color = colors[index];
  index = (index + 1) % colors.length;
}, 300);

结合 CSS 变量动态控制

通过 JavaScript 修改 CSS 变量实现灵活控制:

:root {
  --blink-opacity: 1;
}

.blink-var {
  opacity: var(--blink-opacity);
}

JavaScript 控制:

document.documentElement.style.setProperty('--blink-opacity', '0');

以上方法可根据需求选择,CSS 动画性能最优,setInterval 兼容性最好,requestAnimationFrame 适合复杂动画场景。

标签: 效果js
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的H…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

vue实现效果

vue实现效果

Vue 实现常见效果的方法 数据绑定与响应式更新 Vue 的核心特性是数据绑定,通过 v-model 实现表单元素与数据的双向绑定。例如输入框与数据的实时同步: <input v-model…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #34…