1
window.onresize = function () {
  initiate();
};

function initiate() {
  var windowWidth = $(window).width();
  var windowHeight = $(window).height();
  ...

私がやろうとしているのは、画面が回転するたびにキャンバスを再描画することです(モバイルWebアプリ)。私が今抱えている問題は、画面をめくると$(window).width(); 古い幅と$(document).width();を指定します。動作しません。タイマーで問題は解決しますが、より適切でクリーンな方法が必要です。

誰かがこれを修正する方法を知っていますか?

4

1 に答える 1

2

あなたの関数initiate()は各ピクセルウィンドウを呼び出しますが、何が悪いのかサイズが変更されます。あなたがする必要があるのはsetTimeout、例えばいくつかを追加することです:

var resizeHandler;
window.onresize = function () {
  clearInterval( resizeHandler );
  resizeHandler = setTimeout( initiate, 500 );
};

イベントハンドラーが何度も呼び出すので、よりクリーンな方法はないと思います...

于 2012-12-17T10:30:10.750 に答える