You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

屏幕宽度大于1024px时移除.cart-toggled类的实现方法咨询

解决方案

可以通过添加屏幕尺寸监听逻辑,配合初始化检查来实现需求,具体代码修改如下:

首先,定义处理屏幕尺寸变化的函数并整合原有逻辑:

const cart = document.querySelector('.cart');
const toggle = document.querySelector('.cart__toggle');

// 处理屏幕尺寸变化的函数
function handleScreenResize() {
  // 当屏幕宽度超过1024px时,移除.cart-toggled类
  if (window.innerWidth > 1024) {
    cart.classList.remove('cart-toggled');
  }
}

// 页面初始化时先检查一次屏幕宽度,避免初始状态不符合预期
handleScreenResize();

// 给窗口添加resize事件监听,用防抖优化避免频繁触发
let resizeTimeout;
window.addEventListener('resize', () => {
  clearTimeout(resizeTimeout);
  resizeTimeout = setTimeout(handleScreenResize, 100);
});

// 保留原有的点击切换逻辑(移动端正常使用,桌面端误触后resize会自动修正)
toggle.addEventListener('click', e => {
  e.preventDefault();
  cart.classList.toggle('cart-toggled');
});

逻辑说明:

  • 初始化检查:页面加载后立即执行一次屏幕宽度判断,确保桌面端打开页面时,不会出现带.cart-toggled类的异常UI状态。
  • resize防抖监听:窗口尺寸变化时用100ms延迟防抖,避免拖动窗口过程中频繁触发函数损耗性能;只要宽度超过1024px,就自动移除目标类。
  • 保留点击功能:移动端的面板切换逻辑不受影响,即便桌面端误触切换按钮,后续的resize事件也会自动修正类状态,保证桌面端UI正常。

内容的提问来源于stack exchange,提问作者user1406440

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 03:10:39