Вопрос по Javascript

  • Автор темы Mn_Specter
  • Дата начала
M

Mn_Specter

Гость
#1
Господа, возникла коя-какая проблема.
Вообщем ситуация такая: На сайте есть фотогалерея. Картинки в ней открываются хитрым образом без полной перезагрузки страницы. Выглядит примерно так:
<div id="foto" style="width: 500px; height: 500px; background: url('.$this->foto['foto'].') center no-repeat;">
С помощью JavaScript меняется параметр ...style.background = '...' соответственно для каждой вновь открываемой картинки. То есть картинка отображается как фон, заданный в style тэга <div>.
Проблема в том, что во всех браузерах все нормально, а в Опере возникает следующий косяк - например, у нас сейчас отображается горизонтальная картинка 500х200, а после нее мы загружаем вертикальную картинку 200х500. Так вот новый фон (в нашем случае - фото из галереи) почему-то обрежется по высоте предыдущей (то есть отобразится только 200х200, а по 150 пикселей снизу и сверху отрежутся). Причем при повторном нажатии на на ссылку отображения новой картинки появится и ее остальная часть. Кроме того, при повторном переходе с первой картинки на вторую все сразу отображается нормально (то есть размер второй картинки уже прокешировался и она сразу выводится в полном размере).
Я понимаю, что это уже скорее косяк Оперы, а не скрипта. Вообщем вопрос такой: можно ли этот глюк как-то обойти - например, сделать чтобы для Оперы нажатие на ссылку отображения фотки делалось принудительно двойным (то есть тыкаешь 1 раз, а нажимается как бы 2) - ведь при повторном нажатии на ссылку отрезанная часть догружается. Или еще как-то обмануть Оперу. Я просто в JavaScript не силен (больше по части PHP), а менять полностью структуру вполне рабочей галереи из-за глюков Оперы как-то не хочется...
 
P

p-k

Гость
#2
в данном примере изменение высоты и ширины div'a оставляется на усмотрение броузера. вот они как хотят так и изменяют их.

тебе нужно самому изменять высоту и ширину дива при загрузке картинки. тоесть на яваскрипте получаешь размеры следующей фотки и подставляешь их диву.