Ну, вот вам несколько символических примеров для иллюстрации:
Цитата(Amphiluke @ 6.8.2011, 18:50 ) | | Делать прелоад больших картинок на Javascript. |
| Код | <script type="text/javascript"> (new Image()).src = "$IMG_URL1$"; </script> ... <a href="#" onclick="op('$IMG_URL1$');"> <img src="$IMG_SMALL_URL1$" alt="Нажмите, для просмотра в полном размере..." border=0> </a>
|
Цитата(Amphiluke @ 6.8.2011, 18:50 ) | | Усовершенствовать клиентский и серверный сценарии, чтобы серверный дополнительно просчитывал размеры картинки и передавал их в ф-цию op() вместе с путем $IMG_URL1$, а ф-ция op() соответственно принимала эти размеры в качестве аргументов |
| Код | <script type="text/javascript"> function op(image, w, h) { // далее зависит от реализации конструктора _uWnd. Суть — надо передать // ему истинные размеры картинки и отключить авто-ресайз. Наверное, как-то так: new _uWnd('myName','Изображение',w,h,{autosize:0,min:0,header:1,max:1,resize:0},'<img src='+image+' />'); } </script>
<a href="#" onclick="op('$IMG_URL1$', $IMG_WIDTH1$, $IMG_HEIGHT1$);"> <img src="$IMG_SMALL_URL1$" alt="Нажмите, для просмотра в полном размере..." border=0> </a>
|
Определить размеры картинки ($IMG_WIDTH1$, $IMG_HEIGHT1$) на стороне сервера не представляет труда, например, на PHP можно использовать ф-ции imageSX, imageSY. На ASP — не знаю, но тоже несложно, думаю.
Цитата(Amphiluke @ 6.8.2011, 18:50 ) | | Устанавливать размеры окна после полной загрузки картинки. Понадобится обработчик события onload картинки. IE поддерживает и событие onreadystatechange для объектов HTMLImageElement. |
Тоже зависит от реализации конструктора _uWnd. Принцип таков, что получив путь до изображения, он должен определить обработчик события onload картинки, для которой устанавливается атрибут src="$IMG_URL1$". Например,
| Код | function _uWnd(..., imagePath, ...) { ... image.src = imagePath; image.onload = function() { image_window.style.width = image.offsetWidth + "px"; image_window.style.height = image.offsetHeight + "px"; } ... }
|
Опять же, это только пример для иллюстрации. Конечный код будет зависеть от текущей реализации вашего приложения. |