移动菜单在滚动时消失(纯JavaScript)

时间:2019-02-08 06:56:54

标签: javascript

如果用于响应式移动菜单,我正在使用以下代码。问题在于调整大小事件。在移动触摸屏上滚动菜单时,菜单消失。

if (document.getElementById("burger-check")) {

var viewportWidth = window.innerWidth || document.documentElement.clientWidth;
if (viewportWidth > 768) {
    document.getElementById("burger-check").checked = true;
} else {
    document.getElementById("burger-check").checked = false;
}

window.addEventListener('resize', function () {
    viewportWidth = window.innerWidth || document.documentElement.clientWidth;
    if (viewportWidth > 768) {
        document.getElementById("burger-check").checked = true;
    } else {
        document.getElementById("burger-check").checked = false;
    }
}, {
    passive: false
});

}

1 个答案:

答案 0 :(得分:1)

function myFunction(x) {
if (x.matches) { // If media query matches
document.body.style.backgroundColor = "yellow";
} else {
document.body.style.backgroundColor = "pink";
}
}

var x = window.matchMedia("(max-width: 700px)")
myFunction(x) // Call listener function at run time
x.addListener(myFunction) // Attach listener function on state changes

您还可以使用matchMedia然后获取最大宽度 https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_matchmedia