2010-12-15 2 views
0

У меня есть некоторый код, чтобы увеличить панель видео на странице load/resize. Я использую JQuery 1.4.4, и все отлично работает в Chrome, Firefox и Safari. Следуя некоторым примерам из некоторых других сообщений, я настраиваю размер видеопанели на основе визуализированного размера и стилизации других элементов на экране.Обработка ошибок JQuery/CSS в IE

function maximizeVideo(){ 
    var play_height = $(window).height()-42; 
    var play_width = $PLAY.width() - $NAV.width(); 

    play_width -= parseInt($NAV.css("paddingLeft"), 10) + parseInt($NAV.css("paddingRight"), 10); 
    play_width -= parseInt($NAV.css("marginLeft"), 10) + parseInt($NAV.css("marginRight"), 10); 
    play_width -= parseInt($NAV.css("borderLeftWidth"), 10) + parseInt($NAV.css("borderRightWidth"), 10); 

    $NAV.css('height',play_height-16+"px"); 
    $VIDEO_PANEL.resize(play_width, play_height); 
} 

В IE вспомогательный элемент css иногда возвращает NaN. Есть ли лучший способ учета отображаемой ширины другого элемента?
Если нет, то какой способ захватить эти ошибки?

Спасибо!

+0

$ ALL_CAPS означает объект JQuery определяется вне этой функции. Функция изменения размера (w, h) имеет внутреннюю логику для обработки изменения размера видеодебра и размещения элементов управления видео, истории и т. Д. AFAIK - только для CSS-решения. – RSG

ответ

1

Для вашей ситуации, я думаю, вы должны смотреть на функцию outerWidth вместо width. Используя outerWidth(true), мы можем получить ширину элемента, включая его границы, отступы и разметку. Таким образом, вы можете заменить эту строку:

var play_width = $PLAY.width() - $NAV.width(); 

с этим:

var play_width = $PLAY.width() - $NAV.outerWidth(true); 

И, таким образом, устраняя следующие три строки вычислений в целом.


Кроме того, height и width функции не только добытчики, но и сеттеры, так что эта строка:

$NAV.css('height',play_height-16+"px"); 

можно переписать в виде

$NAV.height(play_height - 16); 
+0

Работала отлично во всех браузерах. Спасибо за указатели. – RSG

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