我有一个javascript,我只想在窗口大小为1326px的最小值时才能工作
这就是我所做的,但它不起作用。无论窗口大小如何,脚本都会运行。
如果你看前两行,那就是我以前尝试检测窗口大小的方法。
var mq = window.matchMedia( "(min-width: 1326px)" );
if (mq.matches)
{
function openNav() {
document.getElementById("mySidenav").style.width = "250px";
document.getElementById("sidebar-loc").style.marginLeft = "250px";
}
function closeNav() {
document.getElementById("mySidenav").style.width = "0";
document.getElementById("sidebar-loc").style.marginLeft= "0";
}
( function($) {
$(document).ready(function () {
slider();
});
} ) ( jQuery );
( function($) {
$(window).scroll(function () {
slider();
});
} ) ( jQuery );
function slider() {
if (document.body.scrollTop > 700)
( function($) {
$('#sliderr').stop().animate({"margin-left": '0'});
} ) ( jQuery );
else
( function($) {
$('#sliderr').stop().animate({"margin-left": '-200'});
} ) ( jQuery );
}
(jQuery);
( function($) {
$(document).ready( function() {
$("#show_arrow").hide(); //hide your div initially
$(window).scroll(function() {
if($(window).scrollTop() > 700) { //scrolled past the other div?
$("#show_arrow").show(); //reached the desired point -- show div
}
else($(window).scrollTop() < 700)
$("#show_arrow").hide();
});
});
} ) ( jQuery );
}
答案 0 :(得分:1)
您需要添加一个监听器
有点像这样
if (matchMedia) {
var mq = window.matchMedia("(min-width: 1326px)");
mq.addListener(WidthChange);
WidthChange(mq);
}
答案 1 :(得分:0)
这不起作用,因为您只检查代码运行时媒体查询是否匹配一次。
解决方案是将整个代码包装在mq.addListener(function (e) { code })
中。 e
对象也具有属性.matches
,或者您仍然可以使用mq.matches
,也可以在更改时更新。{/ p>
另请注意,此功能仍然是工作草案,并且是not supported in some older browsers。如果您希望在这些浏览器中获得支持,则必须侦听窗口大小调整事件,并根据窗口宽度确定媒体查询是否匹配。