当前位置:首页 > JavaScript

js实现闪烁效果

2026-03-01 05:19:30JavaScript

使用CSS动画实现闪烁效果

通过CSS的@keyframes规则定义闪烁动画,再利用JavaScript动态添加/移除类名控制效果。

CSS部分:

.blink {
  animation: blink 1s infinite;
}
@keyframes blink {
  0% { opacity: 1; }
  50% { opacity: 0; }
  100% { opacity: 1; }
}

JavaScript部分:

js实现闪烁效果

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

// 停止闪烁
function stopBlink() {
  element.classList.remove('blink');
}

纯JavaScript定时器实现

通过setIntervalopacity属性切换实现基础闪烁效果:

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

const blinkInterval = setInterval(() => {
  isVisible = !isVisible;
  element.style.opacity = isVisible ? '1' : '0';
}, 500);

// 停止闪烁
clearInterval(blinkInterval);

使用requestAnimationFrame实现高性能闪烁

适合需要平滑动画效果的场景:

js实现闪烁效果

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

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;

  if (running) {
    requestAnimationFrame(blink);
  }
}

requestAnimationFrame(blink);

// 停止闪烁
function stopBlink() {
  running = false;
  element.style.opacity = '1';
}

颜色闪烁实现

实现元素背景色或文字颜色的闪烁变化:

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

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

带缓动效果的闪烁

使用非线性变化实现更自然的闪烁效果:

const element = document.getElementById('target');
function easeInOutSine(x) {
  return -(Math.cos(Math.PI * x) - 1) / 2;
}

function blink() {
  const now = Date.now();
  const duration = 2000;
  const progress = (now % duration) / duration;

  const easedProgress = easeInOutSine(progress);
  element.style.opacity = Math.sin(easedProgress * Math.PI);

  requestAnimationFrame(blink);
}

blink();

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

相关文章

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…

js实现复选框

js实现复选框

实现复选框的基本方法 使用HTML的<input type="checkbox">元素创建复选框,并通过JavaScript监听其状态变化。 <input type="checkb…

js实现图片移动

js实现图片移动

使用CSS和JavaScript实现图片移动 方法一:使用CSS动画结合JavaScript控制 通过CSS定义动画关键帧,JavaScript动态添加或移除动画类。 /* CSS部分 */ .m…

js实现同步

js实现同步

同步与异步的概念 在JavaScript中,同步代码会按照顺序执行,每一行代码必须等待上一行代码执行完成后才能运行。异步代码则允许在等待某些操作(如网络请求)完成的同时继续执行其他代码。 实现同步的…