当前位置:首页 > jquery

jquery定时器

2026-03-02 20:17:01jquery

jQuery 定时器实现方法

jQuery 本身不提供独立的定时器功能,但可以通过 JavaScript 原生定时器方法结合 jQuery 操作 DOM。以下是常见的实现方式:

setTimeout 单次定时器

语法格式:

var timer = setTimeout(function() {
  // 执行代码
  $(selector).doSomething();
}, delayTime);

清除方法:

clearTimeout(timer);

setInterval 循环定时器

基础用法:

var interval = setInterval(function() {
  // 重复执行的代码
  $(selector).toggleClass('active');
}, 1000);

清除方法:

clearInterval(interval);

jQuery 延迟方法

使用 jQuery 的 delay() 与队列结合:

$(selector)
  .delay(2000)
  .queue(function(next) {
    $(this).css('color', 'red');
    next();
  });

动画回调定时

通过动画完成回调实现延时:

$(selector).animate({
  opacity: 0.5
}, 500, function() {
  // 动画完成后执行
});

现代替代方案

考虑使用 requestAnimationFrame:

function animate() {
  // 动画逻辑
  $('.element').css('left', pos++);
  requestAnimationFrame(animate);
}
requestAnimationFrame(animate);

注意事项

  • 定时器函数返回的 ID 需要保存以便清除
  • 避免在事件处理中重复创建定时器导致内存泄漏
  • 页面隐藏时(如切换标签页)建议暂停定时器
  • 长时间运行的定时器建议使用 Web Worker

性能优化建议

对于 DOM 操作密集的场景:

// 使用文档片段减少重绘
var fragment = document.createDocumentFragment();
$(fragment).append('<div>content</div>');
$('#container').append(fragment);

对于需要高精度定时的情况:

jquery定时器

// 使用性能更高的时间戳计算
var start = Date.now();
function handler() {
  var elapsed = Date.now() - start;
  if (elapsed < 2000) {
    requestAnimationFrame(handler);
  }
}

标签: 定时器jquery
分享给朋友:

相关文章

vue定时器简单实现

vue定时器简单实现

使用 setTimeout 实现单次定时任务 在 Vue 中可以通过 setTimeout 实现单次延迟执行。以下是一个简单示例: export default { methods: {…

锋利的jquery

锋利的jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。其核心特点是“写得更少,做得更多”,适合快速开发动态网…

jquery 对象

jquery 对象

jQuery 对象简介 jQuery 对象是通过 jQuery 选择器或方法创建的封装了 DOM 元素的集合。它是一个类数组对象,包含一组 DOM 元素并提供 jQuery 特有的方法链式操作。 创…

jquery 跳转

jquery 跳转

jQuery 页面跳转方法 使用 jQuery 实现页面跳转可以通过多种方式完成,以下是几种常见的方法: 修改 window.location 属性 // 直接跳转到指定 URL window.l…

jquery 返回

jquery 返回

jQuery 返回顶部功能实现 使用jQuery实现返回顶部功能可以通过监听滚动事件和动画滚动效果来完成。以下是几种常见的实现方法: 监听滚动事件并显示/隐藏返回按钮 $(window).scro…

jquery 导航

jquery 导航

jQuery 导航实现方法 使用jQuery创建动态导航菜单 通过jQuery可以轻松实现导航菜单的动态效果,如下拉菜单、滑动菜单等。以下是一个基础的下拉导航实现示例: <ul class=…