Domanda

ho assegnato un timeout per mio gestore window.resize in modo che io non chiamerei la mia somma considerevole codice ridimensionare ogni volta che l'evento di ridimensionamento. Il mio codice è simile al seguente:

<script>
function init() {
  var hasTimedOut = false;
  var resizeHandler = function() {
    // do stuff
    return false;
  };

  window.onresize = function() {
    if (hasTimedOut !== false) {
      clearTimeout(hasTimedOut);
    }
    hasTimedOut = setTimeout(resizeHandler, 100); // 100 milliseconds
  };
}
</script>
<body onload="init();">
...
etc...

In IE7 (e forse altre versioni) sembra che quando si esegue questa manifestazione il ridimensionamento costantemente il fuoco. Più precisamente, esso si attiva dopo ogni durata del timeout -. 100 millisecondi, in questo caso

Tutte le idee perché o il modo di fermare questo comportamento? Mi piacerebbe davvero piuttosto non chiamo il mio codice di ridimensionamento per ogni evento di ridimensionamento che gli incendi in un unico ridimensionamento, ma questo è peggio.

È stato utile?

Soluzione

Nel vostro // do codice di roba, non ti manipolare qualsiasi delle proprietà superiore, sinistro, larghezza, altezza, di confine, margine o padding?

Si può involontariamente essere innescando la ricorsione che innesca involontariamente ricorsione che innesca involontariamente ricorsione ...

Altri suggerimenti

Come risolvere l'evento resize in IE

Inoltre, vedere la risposta per "scunliffe" "Nei tuoi ... proprietà?

IE effettivamente fuoco costantemente l'evento di ridimensionamento durante il ridimensionamento si sta svolgendo (che si deve sapere, come si sta già attuando un timeout per una correzione).

Sono in grado di replicare i risultati che state vedendo, utilizzando il codice, sulla mia pagina di prova.

Tuttavia, il problema va via se aumentare il timeout a 1000 invece di 100. Si consiglia di provare con diversi valori di attesa per vedere che cosa funziona per voi.

Ecco la pagina di prova ho usato : essa ha un ben dinamica attendere periodo già impostato per voi a giocare con.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top