2017-07-29 19 views
-1

我已经编写了这个简单的代码来重新调整页面的大小,当窗口在799和800像素之间但它并不工作,有谁知道为什么?如果窗口宽度在800像素和799像素之间,请执行JS函数

$(window).resize(function() { 
    if ($(window).width() > 799 && $(window).width() < 800 { 
    location.reload(); 
    } else {} 
}); 

我也写了这个代码来检查,如果宽度是800下的页面重新加载做一些东西

if ($(window).width() < 800) { 
    // do some stuff 
} else {} 

我大概也可以使用这应该只是一次切换,如果一个功能之后断点(f.ex .: 800px)会被触发,有什么想法?

+1

您的浏览器可能只给出整数宽度值。在799和800之间没有整数。 – Pointy

+2

您是否认为许多像素严格小于800,严格大于799? –

+1

'799 +1 = 800.' 1像素,而调整大小?不可能,因为没有像素的像素大小 –

回答

1

之间没有整数我找到了解决办法:

var ww = $(window).width(); 
var limit = 800; 
function refresh() { 
    ww = $(window).width(); 
    var w = ww<limit ? (location.reload(true)) : (ww>limit ? (location.reload(true)) : ww=limit); 
} 
var tOut; 
$(window).resize(function() { 
    var resW = $(window).width(); 
    clearTimeout(tOut); 
    if ((ww>limit && resW<limit) || (ww<limit && resW>limit)) { 
     tOut = setTimeout(refresh, 10); 
    } 
}); 
2

您应该使用>=<=,而不是仅仅><,像这样:

$(window).resize(function() { 
    if ($(window).width() >= 799 && $(window).width() <= 800 { 
    location.reload(); 
    } else {} 
}); 

> 799 && < 800将永远不会触发,因为有799和800

+0

*喜欢这个* ..:/花点时间写出正确的答案。 –

+0

请用> =和<=更新您的答案:p –

+0

对不起,我只是拼错了。我已经更新了答案 –