当前位置:首页 > JavaScript

js实现$(window)

2026-02-02 10:13:51JavaScript

在JavaScript中,原生实现类似jQuery的$(window)功能可以通过以下方式完成。jQuery的$()函数主要用于DOM操作和事件绑定,而$(window)特指浏览器窗口对象,常用于监听窗口事件或获取窗口属性。

获取window对象

原生JavaScript中直接使用window对象即可,无需封装:

js实现$(window)

const win = window; // 等同于jQuery的$(window)

监听窗口事件

原生方法实现$(window).on('event', handler)

js实现$(window)

window.addEventListener('resize', function() {
  console.log('窗口大小变化');
});

// 对应移除事件
const handler = () => console.log('滚动事件');
window.addEventListener('scroll', handler);
window.removeEventListener('scroll', handler);

常用窗口属性

获取窗口尺寸或滚动位置:

// 视口宽度
const viewportWidth = window.innerWidth; 

// 视口高度
const viewportHeight = window.innerHeight; 

// 垂直滚动位置
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;

封装简化函数

若需模拟jQuery的链式调用,可封装工具函数:

function $(element) {
  return {
    on: (event, callback) => element.addEventListener(event, callback),
    off: (event, callback) => element.removeEventListener(event, callback),
    width: () => element.innerWidth,
    height: () => element.innerHeight
  };
}

// 使用示例
$(window).on('click', () => console.log('窗口被点击'));

注意事项

  • 原生window对象已包含所有浏览器API,无需额外选择器。
  • 滚动事件需考虑兼容性,旧版IE使用document.documentElement.scrollTop
  • 现代浏览器推荐使用window.requestAnimationFrame替代scroll/resize事件进行性能优化。

标签: jswindow
分享给朋友:

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterv…

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统…