2013-05-23 3 views
0

Я получаю размер окна с помощью jquery?Получите размер окна непрерывно с помощью jQuery

winWidth = $(window).width(); 

$("#status").text(winWidth); 

Я вставил это, но я получаю только один раз. если я уменьшу окно, значение будет таким же. Есть какой-то способ, что это «событие» может быть всегда слушателем?

С наилучшими пожеланиями

ответ

2

Используйте .resize() событие jQuery.It уточнит размер когда-либо вы меняете окно size.In вашем случае это fixed.Which является caluculated пока страница loading.So вам нужно обновите этот размер при изменении размера окна.

var winWidth = 0; 
$(window).resize(function() { 
    winWidth = $(window).width(); 
    $("#status").text(winWidth); 
}); 
0

Использование jqueries resize() событие.

var winWidth = $(window).width(); 

$(window).resize(function(){ 
    winWidth = $(window).width(); 
}); 
-1

Если вы подключаетесь в случае изменения размера и сделать много обработки на каждом изменении, вы будете замораживать браузер, потому что событие изменения размера вызывает несколько сотен в секунду на рабочем столе.

Вы должны сделать некоторые дребезга на функции:

function updateOrientation() { 
    // Detect whether device supports orientationchange event, otherwise fall back to the resize event 
    // Genius solution from http://stackoverflow.com/a/2307936 
    var supportsOrientationChange = "onorientationchange" in window, 
    orientationEvent = supportsOrientationChange ? "orientationchange" : "resize", newAngle; 

    if(supportsOrientationChange){ 
     newAngle = window.orientation; 
     switch(newAngle){ 
      case 0: 
      case 180: newOrientation = 'portrait'; break; 
      case 90: 
      case -90: newOrientation = 'landscape'; break; 
     } 
    } else { 
     if(document.width < document.height){ 
      newOrientation = 'portrait' 
     } else { 
      newOrientation = 'landscape' 
     } 
    } 

    // Do some processing here 

    /* 
    * Beautiful debouncing for resize event firing too much on the PC 
    * by Pim Jager http://stackoverflow.com/a/668185/930987 
    */ 
    resizeEvent = false; 

    window.addEventListener(orientationEvent, function() { 
     if(!resizeEvent) { 
      clearTimeout(resizeEvent); 
      resizeEvent = setTimeout(updateOrientation, 500) 
     } 
    }) 
    } 
+0

???? Как это каким-либо образом, форма или форма помогают ему узнать размер окна в любой момент времени? Это не так. Это излишний, а также простой неактуальный. – Archer

+0

Ну, через 10 минут, когда он проверит простой размер(), вернется для этого решения. Было бы проще, если бы вместо «Сделать некоторую обработку здесь» я бы поставил «winWidth = $ (window) .width(); $ (« # status »). Text (winWidth);»? Это общее решение проблемы, возможно, поможет некоторым другим. –

Смежные вопросы