Javascript媒体查询没有响应
所以我正在建立一个网站,我有一些使用HTML和JS的自定义菜单。当菜单打开时,它占屏幕的25%:Javascript媒体查询没有响应,javascript,css,web,Javascript,Css,Web,所以我正在建立一个网站,我有一些使用HTML和JS的自定义菜单。当菜单打开时,它占屏幕的25%: function opensideNav() { document.getElementById("mySidenav").style.width = "25%"; } //Closes Right sidenav function closesideNav() { document.getElementById("mySidenav").style.width = "0"; }
function opensideNav() {
document.getElementById("mySidenav").style.width = "25%";
}
//Closes Right sidenav
function closesideNav() {
document.getElementById("mySidenav").style.width = "0";
}
如果我使用
var mq = window.matchMedia( "(min-width: 1023px)" );
if (mq.matches) {
function opensideNav() {
document.getElementById("mySidenav").style.width = "25%";
}
//Closes Right sidenav
function closesideNav() {
document.getElementById("mySidenav").style.width = "0";
}
} else {
function opensideNav() {
document.getElementById("mySidenav").style.width = "100%";
}
//Closes Right sidenav
function closesideNav() {
document.getElementById("mySidenav").style.width = "0";
}
}
它只会在比1023…小的屏幕上打开菜单。。。。我尝试过将最小值更改为最大值,但仍然存在相同的问题。请帮助:)为什么不直接使用CSS媒体查询?你可以做:
function toggleNav() {
document.getElementById("mySidenav").classList.toggle("open");
}
#mySidenav {
width: 0;
}
#mySidenav.open {
width: 100%;
}
@media screen and (min-width: 1023px) {
#mySidenav.open {
width: 25%;
}
}
在切换打开
类的JavaScript中,需要将其附加到要单击以切换菜单的任何内容上
然后在CSS中,您可以执行以下操作:
function toggleNav() {
document.getElementById("mySidenav").classList.toggle("open");
}
#mySidenav {
width: 0;
}
#mySidenav.open {
width: 100%;
}
@media screen and (min-width: 1023px) {
#mySidenav.open {
width: 25%;
}
}
因此,这就是JS中的函数在单击时打开和关闭mySidenav
元素的open
类。默认情况下,CSS为mySidenav
提供0
的width
,然后在应用open
类时覆盖该宽度。这还会查看视口的宽度,并更改基于该宽度应用的宽度
请注意,您的“打开导航”按钮类似于:
<button onclick="toggleNav()">Menu</button>
菜单
您误解了最小宽度
<在媒体查询的上下文中,code>min width表示如果视口具有给定值的最小width
,则将应用它。但是,您打算按设备的宽度
进行查询,因此最小宽度
和最大宽度
对您的目的没有实际帮助。您需要分别使用min device width
和max device width
来查询设备的宽度,而不是视口的宽度