通过一定宽度时重新加载页面

Reload page when a certain width is passed

本文关键字:加载 新加载      更新时间:2023-09-26

我希望页面仅在浏览器窗口高于或低于 768px 时才重新加载。这是我的尝试,但失败了。

if ($(window.width() > "769") {
    $(window).resize(function () {
        if ($(window).width() < "769") {
            location.reload();
        }
    });
}
elseif($(window.width() < "769") {
    $(window).resize(function () {
        if ($(window).width() > "769") {
            location.reload();
        }
    });
}

我确信有一种非常简单的方法可以做到这一点。

demo jsFiddle

页面重新加载的证据是(选项卡中的等待图标:D)生成随机数的数学随机数(在演示中)。

var ww = $(window).width();
var limit = 769;
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, 100);
    }
});

超时函数将有助于调整窗口大小以在调用refresh函数之前等待 100 毫秒。
您可以增加超时值以提高可用性。

可能还有其他更好的方法来做你真正需要的事情,但是:

if ($(window.width() > "769"){

应该是:

if ($(window).width() > 769){

完整代码:

var width = $(window).width();
$(window).resize(function() {
    if (width > 769 && $(window).width() < 769) {
        location.reload();
    }
    else if (width < 769 && $(window).width() > 769) {
        location.reload();
    }
});​

现场演示

它可以用一个 if 语句来制作,但我更喜欢把它分成两部分,这样更容易理解。