.InFo
Вечно пьян, вечно в бреду

Lightbox2 и Opera

Август 9th, 2008 by mAd

Прикручивая lightbox2 к очередному проекту вылезла проблема.
если у окна есть скролл (к примеру на странице много контента, или размер окна браузера уменьшен), overlay закрывает не всю страницу, а только часть, в моём случае он закрывал участок страницы, размером с первый экран, и расспологал его в верхней части.

Способ решения:

В конец файла lightbox.js, перед return [pageWidth,pageHeight]; дописываем следующие строки:


if(Prototype.Browser.Opera){//если имеем дело с оперой
    docDimension=document.documentElement.getDimensions();//получаем размеры документа
    if(pageHeight<docDimension.height){//если посчитанная ранее высота меньше чем мы только что получили
        pageHeight=docDimension.height;//меняем её на нашу
    }
    //тоже самое для ширины
    if(pageWidth<docDimension.width){
        pageWidth=docDimension.width;
    }
}

Правда в таком виде у меня не везде сработало. Если у вас тоже не получится, попробуйте обрамить всё содержимое страницы в div к примеру с id=”document” (ставте любой, который вам больше подходит), и замените строчку

docDimension=document.documentElement.getDimensions();

на

docDimension=$("document").getDimensions();

по крайней мере в моём случае сработало.

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

Posted in javascript

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.

rss RSS