5

ブラウザ ウィンドウが 768 ピクセルを超えるか下回る場合にのみ、ページをリロードします。これは失敗した私の試みでした。

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();
        }
    });

}

これを行うための本当に簡単な方法があると確信しています。

4

2 に答える 2

7

デモ jsFiddle

ページがリロードされたことの証明は (タブの待機アイコン :D ) (デモで) 乱数を生成する Math random です。

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);
    }
});

タイムアウト関数は、関数を呼び出す前に 100 ミリ秒待機するようにウィンドウのサイズを変更するのに役立ちrefreshます。
使いやすさを向上させるために、タイムアウト値を増やすことができます。

于 2012-05-14T01:14:19.750 に答える
3

本当に必要なことを行うには、おそらく他にもはるかに優れた方法がありますが、次のとおりです。

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();
    }
});​

ライブデモ

1 つの if ステートメントで作成することもできますが、従うのが簡単になるように 2 つに分割することを好みました。

于 2012-05-14T00:42:14.523 に答える