我有一个容器,当屏幕小于1000px时,我想隐藏它.

css

.desktop-links { display: none; }

.active { display: block; }

.in-active { display: none; }

JavaScript:

const desktopLinks = document.querySelector('.desktop-links');

shareBtn.addEventListener('click', () => {
    if(window.innerWidth < 1000) {
        
        phoneLinks.classList.toggle('active');
        profile.classList.toggle('in-active');
    } else {
        desktopLinks.classList.toggle('active');
    }
});

bug:

当页面加载在桌面上,如果我点击shareBtn和窗口屏幕是超过shareBtn0px,desktopLinks显示我想要的,但如果我调整浏览器屏幕大小为desktopLinks.style.display = "block",那么我可以看到它在移动大小,如果当页面加载时,屏幕大小是在移动大小,如果我调整它的大小到全屏,我应该重新加载页面,以便功能工作,我想要如何修复这个错误?

what I did

我试图使用While和For循环来修复错误,但最终导致页面崩溃,并在If语句中添加了desktopLinks.style.display = 'none'个错误,但不起作用.

推荐答案

在你的JS中,创建一个window resize事件来判断它是否应该交换你的菜单类型:

JS:

const desktopLinks = document.querySelector('.desktop-links');

shareBtn.addEventListener('click', () => {
  if (window.innerWidth <= 1000) {
    phoneLinks.classList.toggle('active');
    profile.classList.toggle('in-active');
  } 
  else {
    desktopLinks.classList.toggle('active');
  }
});

window.addEventListener('resize', e => {
  if(window.innerWidth <= 1000 && desktopLinks.classList.contains('active')) {
    desktop.classList.toggle('active')
    phoneLinks.classList.toggle('active');
    profile.classList.toggle('in-active');
  } 
  else if (window.innerWidth > 1000 && phoneLinks.classList.contains('active')) {      
    desktop.classList.toggle('active')
    phoneLinks.classList.toggle('active');
    profile.classList.toggle('in-active');
  }
});

Javascript相关问答推荐

如何访问react路由v6加载器函数中的查询参数/搜索参数

判断表格单元格中是否存在文本框

切换时排序对象数组,切换不起作用

使用VUE和SCSS的数字滚动动画(&;内容生成)

VSCode中出现随机行

面对代码中的错误作为前端与后端的集成

删除加载页面时不存在的元素(JavaScript)

如果没有页面重新加载Angular ,innerHTML属性绑定不会更新

Django导入问题,无法导入我的应用程序,但我已在设置中安装了它

构建器模式与参数对象输入

自动滚动功能在当前图像左侧显示上一张图像的一部分

每隔3个项目交替显示,然后每1个项目交替显示

在JavaScript中,有没有一种方法可以迭代字符串的词法标记?

需要RTK-在ReactJS中查询多个组件的Mutations 数据

如何将对象推送到firestore数组?

在使用JavaScript以HTML格式显示Google Drive中的图像时遇到问题

如何从Reaction-Redux中来自API调用的数据中筛选值

如何格式化API的响应

Google OAuth 2.0库和跨域开放程序的问题-策略错误

元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件),但GET:Object.在Reaction项目中