Lightbox2 и Opera
Прикручивая 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
RSS