当前位置:首页 > JavaScript

js实现闪烁

2026-01-30 09:17:42JavaScript

使用CSS动画实现闪烁效果

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

.blink {
  animation: blink 1s infinite;
}

@keyframes blink {
  0% { opacity: 1; }
  50% { opacity: 0; }
  100% { opacity: 1; }
}
const element = document.getElementById('target');
element.classList.add('blink');

// 停止闪烁
// element.classList.remove('blink');

使用setInterval定时切换样式

通过JavaScript定时器周期性修改元素的透明度或显示状态:

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

// 停止闪烁
// clearInterval(interval);

使用requestAnimationFrame实现高性能闪烁

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

js实现闪烁

const element = document.getElementById('target');
let start = null;
function blink(timestamp) {
  if (!start) start = timestamp;
  const progress = (timestamp - start) % 1000;
  element.style.opacity = Math.abs(500 - progress) / 500;
  requestAnimationFrame(blink);
}
requestAnimationFrame(blink);

快速颜色闪烁实现

通过交替改变背景色实现醒目闪烁效果:

const element = document.getElementById('target');
let isRed = false;
setInterval(() => {
  isRed = !isRed;
  element.style.backgroundColor = isRed ? 'red' : 'transparent';
}, 300);

带缓动效果的闪烁

使用CSS过渡属性实现平滑的闪烁效果:

js实现闪烁

.smooth-blink {
  transition: opacity 0.3s ease-in-out;
  opacity: 1;
}

.smooth-blink.hidden {
  opacity: 0;
}
const element = document.getElementById('target');
element.classList.add('smooth-blink');
setInterval(() => {
  element.classList.toggle('hidden');
}, 1000);

渐强渐弱闪烁模式

实现更自然的呼吸灯效果:

const element = document.getElementById('target');
let opacity = 1;
let direction = -0.05;
function breathe() {
  opacity += direction;
  if (opacity <= 0.3 || opacity >= 1) direction *= -1;
  element.style.opacity = opacity;
  requestAnimationFrame(breathe);
}
breathe();

随机间隔闪烁

创建更自然的警示效果:

const element = document.getElementById('target');
function randomBlink() {
  element.style.visibility = 
    element.style.visibility === 'hidden' ? 'visible' : 'hidden';
  setTimeout(randomBlink, 200 + Math.random() * 800);
}
randomBlink();

标签: js
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…