javascript - 当屏幕大小低于断点时将类附加到 div
问题描述
因此,我在执行某些项目时遇到了一些麻烦,我想看看是否可以从一些专家那里获得有关如何执行此操作的帮助:
所以这就是我想要实现的目标:
- 当浏览器加载或调整大小并且它在下面
769px
时,我想将类名添加is-right
到我的下拉列表中。 - 如果屏幕大于
769px
,我想删除is-right
类名。
这是我目前拥有的:
<div class="level-item">
<div class="dropdown is-hoverable is-clickable">
// Empty
</div>
</div>
<div class="level-item">
<div class="dropdown is-hoverable is-clickable">
// Empty
</div>
</div>
类名必须附加在列表中:dropdown is-hoverable is-clickable
,所以它是这样的:dropdown is-hoverable is-clickable is-right
。
window.addEventListener('resize', () => {
const dropdown = document.querySelector('.dropdown');
// If window screen is at least 500px
if (window.matchMedia("(min-width: 769px)").matches) {
dropdown.classList.toggle('is-right')
} else {
dropdown.classList.remove('is-right');
}
});
上面的代码段由于某种原因不会附加.is-right
到我的下拉列表中,请记住我有多个 .dropdown 类。
解决方案
这种方式应该工作(?)
function Sizing4isRight()
{
let classOnOff = window.matchMedia('(max-width: 769px)').matches
;
document
.querySelectorAll('.dropdown')
.forEach(el=>el.classList.toggle('is-right', classOnOff))
}
document.addEventListener('DOMContentLoaded', Sizing4isRight )
window.addEventListener('resize', Sizing4isRight )
[编辑] KXNG备注和对话后更改
有关更多信息classList.toggle()
,我提出的第二个论点并通过测试回答了解释,就在这里
推荐阅读
- php - 上传的 CSV 文件有 4 列,没有标题。需要创建数组并为每一列分配一个特定的键值
- php - 预检响应不允许 cors 错误标头
- sql - 我怎样才能避免多次使用 xml 路径的东西?
- laravel - 在 vue-laravel 惯性应用程序中设置 firebase 网络推送通知
- r - 使用 R 从数据框中的 url 中抓取内容
- ruby - SocketError:sockaddr 解析为多个节点名
- node.js - Blazor Server 与 socket.io 的合作
- windows - 您好,我尝试在 dev-c++ 中运行我的 c 代码并得到以下信息:[错误] 'for' 循环初始声明仅在 C99 或 C11 模式下允许
- web - 如何在 Web 应用程序中集成签名板
- laravel - 如何从多个控制器获取数据到 Laravel Blade 视图中?