我有一个切换按钮,它基本上显示/隐藏产品索引页面上的过滤器列表。桌面很简单,当单击按钮时,面板会使用以下脚本显示或隐藏:
$(".filter-toggle").click(function(){
$(".grid").toggleClass("hide-filters");
});
当浏览器低于 1024 像素时,我使用 mmenu 插件复制过滤器内容并将其移动到画布外面板中。代码如下所示:
$(document).ready(function() {
$(".filters").mmenu({
// Options
navbar: {
title: "Filters"
}
}, {
// Configuration
clone: true,
offCanvas: {
pageSelector: ".page"
},
classNames: {
selected: "active"
}
});
var API = $(".filters").data("mmenu");
var $icon = $(".filter-toggle");
$icon.on("click", function() {
API.open();
});
});
显然(此时)单击切换按钮时,它将显示/隐藏页面上的内容,但同时也会触发滑出菜单。
我的问题是如何仅在需要时运行相关脚本。是否也可以在不只是在 pageLoad/refresh 上调整大小时执行此操作?
我尝试使用matchMedia
. 这是一个快速的 CodePen 显示我在哪里......
https://codepen.io/moy/pen/wymvjN
看起来它开始工作了。超过 1024 像素的切换工作。缩小浏览器意味着该按钮触发了滑出面板 - 太棒了!但是,当缩放回桌面时,只要单击切换,就会触发滑出菜单。刷新时它再次工作......直到您缩小浏览器并再次备份。
有任何想法吗?