IE8 проблема с позиционированием Jquery - PullRequest
1 голос
/ 08 декабря 2010

Я пытаюсь расположить загрузочный рисунок в середине окна просмотра, используя jquery. Решение, которое я придумал, работает во всех браузерах, кроме IE8 и старше:

JS

   <script type="text/javascript">
      jQuery(document).ready(function(){
        jQuery("#loading_spinner").css("left", window.innerWidth/2);
        jQuery("#loading_spinner").css("top", window.innerHeight/2);
      });
    </script>

HTML

       <div id='GB_overlay' style="display:none;">
        <div id="loading_spinner" style="position:absolute;">
          <img src="/img/transparent_loader.gif" alt="#"/>
        </div>

По какой-то причине, в IE8 или ниже, спиннер располагается в левом верхнем углу экрана, а не в центре. Это ошибка IE? Как я могу это исправить?

Ответы [ 3 ]

3 голосов
/ 08 декабря 2010

Внутренняя ширина и внутренняя высота не поддерживаются в IE. (Кроме IE9)

См. quirksmode

Можно использовать

$(window).height() и $(window).width()

2 голосов
/ 08 декабря 2010

Ваша проблема - это window.innerWidth и window.innerHeight, которые не работают в IE.

Безопаснее всего использовать jQuery, при необходимости используйте одно из следующих действий:

$(window).height();   // returns height of browser viewport
$(document).height(); // returns height of HTML document
0 голосов
/ 08 декабря 2010

Попробуйте использовать

http://api.jquery.com/height/

...