当前位置:首页 > JavaScript

js实现闪烁

2026-04-04 00:51:37JavaScript

实现元素闪烁效果

使用CSS动画结合JavaScript控制元素的闪烁效果。定义一个关键帧动画,通过JavaScript动态添加或移除动画类。

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

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

使用setInterval实现

通过定时器交替改变元素的可见性来实现闪烁效果。这种方法兼容性更好但性能略低于CSS动画。

js实现闪烁

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

// 停止闪烁
clearInterval(interval);

使用requestAnimationFrame

对于需要更精细控制的动画效果,可以使用requestAnimationFrame API。这种方法性能最佳,适合复杂的动画场景。

js实现闪烁

const element = document.getElementById('target');
let start = null;
let opacity = 1;

function blink(timestamp) {
  if (!start) start = timestamp;
  const progress = (timestamp - start) % 1000;
  opacity = Math.abs(Math.cos(progress * Math.PI / 500));
  element.style.opacity = opacity;
  requestAnimationFrame(blink);
}

requestAnimationFrame(blink);

使用CSS transition

通过JavaScript动态改变样式属性,结合CSS过渡效果实现平滑的闪烁。

.fade {
  transition: opacity 0.5s ease-in-out;
}
const element = document.getElementById('target');
element.classList.add('fade');

function toggleBlink() {
  const currentOpacity = parseFloat(getComputedStyle(element).opacity);
  element.style.opacity = currentOpacity === 1 ? 0 : 1;
}

const interval = setInterval(toggleBlink, 1000);

注意事项

不同方法各有优缺点:CSS动画性能最好但控制不够灵活;setInterval简单但可能引起性能问题;requestAnimationFrame最流畅但实现较复杂。根据具体需求选择合适方案。

闪烁频率可以通过调整动画时间或间隔时间来改变。避免过度使用闪烁效果,以免影响用户体验。

标签: js
分享给朋友:

相关文章

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现自举

js实现自举

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

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

js实现排序

js实现排序

数组排序方法 JavaScript提供了内置的sort()方法用于数组排序。默认情况下,sort()将元素转换为字符串并按照Unicode码点排序。对于数字排序,需传入比较函数。 const num…