validacion - validar formulario javascript onclick




Evento de cambio de tamaño de la ventana del navegador cruzado-JavaScript/jQuery (8)

Además de las funciones de redimensionamiento de la ventana mencionadas, es importante comprender que los eventos de redimensionamiento se activan mucho si se usan sin que los eventos se deban.

Paul Irish tiene una excelente función que anuncia que el cambio de tamaño requiere mucho. Muy recomendado para su uso. Funciona cross-browser. Lo probé en IE8 el otro día y todo estuvo bien.

http://www.paulirish.com/2009/throttled-smartresize-jquery-event-handler/

Asegúrese de revisar la demostración para ver la diferencia.

Aquí está la función para la integridad.

(function($,sr){

  // debouncing function from John Hann
  // http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/
  var debounce = function (func, threshold, execAsap) {
      var timeout;

      return function debounced () {
          var obj = this, args = arguments;
          function delayed () {
              if (!execAsap)
                  func.apply(obj, args);
              timeout = null;
          };

          if (timeout)
              clearTimeout(timeout);
          else if (execAsap)
              func.apply(obj, args);

          timeout = setTimeout(delayed, threshold || 100);
      };
  }
  // smartresize 
  jQuery.fn[sr] = function(fn){  return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); };

})(jQuery,'smartresize');


// usage:
$(window).smartresize(function(){
  // code that takes it easy...
});

¿Cuál es el método correcto (moderno) para aprovechar el evento de cambio de tamaño de la ventana que funciona en Firefox, WebKit e Internet Explorer?

¿Y puedes activar / desactivar ambas barras de desplazamiento?


Aquí está la forma no jQuery de aprovechar el evento de cambio de tamaño:

window.addEventListener('resize', function(event){
  // do stuff here
});

Funciona en todos los navegadores modernos. No estrangula nada por ti. Aquí hay un ejemplo de ello en acción.


Creo que deberías agregar más control a esto:

    var disableRes = false;
    var refreshWindow = function() {
        disableRes = false;
        location.reload();
    }
    var resizeTimer;
    if (disableRes == false) {
        jQuery(window).resize(function() {
            disableRes = true;
            clearTimeout(resizeTimer);
            resizeTimer = setTimeout(refreshWindow, 1000);
        });
    }

Disculpe por mostrar un hilo viejo, pero si alguien no quiere usar jQuery, puede usar esto:

function foo(){....};
window.onresize=foo;


jQuery tiene un método incorporado para esto:

$(window).resize(function () { /* do something */ });

En aras de la capacidad de respuesta de la interfaz de usuario, puede considerar usar un setTimeout para llamar a su código solo después de algunos milisegundos, como se muestra en el siguiente ejemplo, inspirado en this :

function doSomething() {
    alert("I'm done resizing for the moment");
};

var resizeTimer;
$(window).resize(function() {
    clearTimeout(resizeTimer);
    resizeTimer = setTimeout(doSomething, 100);
});

espero que ayude en jQuery

defina una función primero, si hay una función existente, salte al siguiente paso.

 function someFun() {
 //use your code
 }

uso del tamaño del navegador como estos.

 $(window).on('resize', function () {
    someFun();  //call your function.
 });

$(window).bind('resize', function () { 

    alert('resize');

});




resize