当前位置:首页 > JavaScript

js实现$(window)

2026-03-15 10:14:37JavaScript

在JavaScript中实现类似jQuery的$(window)功能,可以通过原生方法或简单封装实现。以下是几种常见方法:

直接使用原生window对象

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

js实现$(window)

window.addEventListener('resize', function() {
  console.log('Window resized');
});

简单封装为$函数

若需要模拟jQuery风格,可创建如下封装:

js实现$(window)

const $ = function(selector) {
  if (selector === 'window') {
    return {
      on: (event, callback) => window.addEventListener(event, callback),
      off: (event, callback) => window.removeEventListener(event, callback),
      width: () => window.innerWidth,
      height: () => window.innerHeight
    };
  }
  // 其他选择器处理...
};

// 使用示例
$('window').on('resize', () => console.log('Resized'));

完整jQuery风格实现

更完整的实现可包含DOM元素选择:

const $ = function(selector) {
  if (selector === window || selector === 'window') {
    return {
      on: function(events, handler) {
        events.split(' ').forEach(e => window.addEventListener(e, handler));
      },
      off: function(events, handler) {
        events.split(' ').forEach(e => window.removeEventListener(e, handler));
      },
      trigger: function(event) {
        window.dispatchEvent(new Event(event));
      }
    };
  }
  // 其他选择器逻辑...
};

现代ES6模块化方案

使用类封装实现:

class JQWindow {
  static on(event, callback) {
    window.addEventListener(event, callback);
  }

  static off(event, callback) {
    window.removeEventListener(event, callback);
  }

  static get width() {
    return window.innerWidth;
  }
}

// 使用方式
JQWindow.on('scroll', () => console.log('Scrolling'));

注意事项

  • 原生window对象已包含所有浏览器API,如window.innerWidthwindow.scrollY
  • 事件监听优先使用addEventListener而非onresize等属性
  • 移动端需考虑visualViewportAPI处理虚拟键盘等情况

标签: jswindow
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…