SORU
8 HAZİRAN 2010, Salı


Bir pencere JavaScript kullanarak yeniden boyutlandırıldığında algılamak ?

Ya da kullanıcı tarayıcı penceresini yeniden boyutlandırmak için bittiğinde bir fonksiyonu tetiklemek için jQuery JavaScript ile herhangi bir yolu var mı?

Başka bir deyişle:

  1. Kullanıcı tarayıcı penceresini yeniden boyutlandırmak zaman fare olayı tespit edebilir miyim? Aksi takdirde:
  2. Pencere yeniden boyutlandırma işlemi tamamlandığında algılayabilir miyim?

Şu anda jQuery ile kullanıcı pencereyi yeniden boyutlandırmak için bir olayı tetiklemek için tek şansım var

CEVAP
8 HAZİRAN 2010, Salı


.resize() genişlik/yükseklik aslında değişiklik her zaman için, bu gibi kullanabilirsiniz:

$(window).resize(function() {
  //resize just happened, pixels changed
});

You can view a working demo here, seni görmek için sayfa genişliği değerleri ve güncellemeler/yeni yüksekliği onları alır. Olayı hatırlamıyor gerçektenbaşlayınyasonunda"olur yeniden...başka söyleyecek bir şey yok oluştuğunda" olmayacak.


Düzenleme:Yorum görünüyor istediğiniz bir şey gibi bir "son" olay, çözüm buldunuz mu bu, bir istisna olabilir mi ayırt arasında bir fare ve bir duraklama bir çapraz tarayıcı şekilde, aynı durumdasonundavsduraklatmak). Yapabilirsinizoluşturunbu olay olsa da, ben biraz daha temiz, böyle yapmak için:

$(window).resize(function() {
    if(this.resizeTO) clearTimeout(this.resizeTO);
    this.resizeTO = setTimeout(function() {
        $(this).trigger('resizeEnd');
    }, 500);
});

Bu yapmak istediğiniz ne olursa olsun, temel bir dosya bir yerde, olabilir...o zaman böyle tetikleyen sensin resizeEnd yeni olay için bağlayabilirsiniz:

$(window).bind('resizeEnd', function() {
    //do something, window hasn't changed size in 500ms
});

You can see a working demo of this approach here

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chanre Joubert

    Chanre Joube

    27 Temmuz 2012
  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010
  • NextGenWindows

    NextGenWindo

    8 Kasım 2011