Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Вопрос насчет обработчика load в ie (https://javascript.ru/forum/dom-window/8383-vopros-naschet-obrabotchika-load-v-ie.html)

alexrussia 22.03.2010 20:47

Вопрос насчет обработчика load в ie
 
Здравствуйте у меня вопрос насчет обработчика load для изображений и его применение в браузере ie. Сделал скрипт увеличения изображения.
Код увеличения изображения работает отлично в Firefox. В ie есть маленькая проблема, когда кликаем по маленькой картинке, то увеличенной картинке передаются сначала начальные координаты style.left и style.top, а потом уже заданные. То есть другими словами картинка как бы прыгает при первом запуске html. Код примерно такой:


if (imeg.complete)
funcs(imeg,g);
else
attachEvent("load",function(){funcs(imeg,g);});



imeg - картинка большая
funcs(imeg,g); - функция которая задает нужные параметры style.left и style.top для большой картинки.

1.Я читал в книгах, что ie не возбуждает обработчик load для картинок, то есть ie считает, что картинка уже загружена, требуется ли передавать параметры картинки только когда загрузится изображение, другими словами передать функцию параметров картинки обработчику load ?
2.Как правильно передать параметры картинки чтобы картинка сразу же после загрузки приняла нужные значения, а не стандартные значения а потом уже нужные(чтобы не прыгала)?

Octane 22.03.2010 22:11

Цитата:

Сообщение от alexrussia
Я читал в книгах, что ie не возбуждает обработчик load для картинок

Неправильные вы книжки читаете.

Назначать обработчик события load нужно до изменения src.

Еще очень распространенная ошибка и многие на ней попадаются, когда по DOMContentLoaded ($(document).ready(…) в jQuery) назначают обработчики события load изображений, но для изображений из кэша, событие load наступает раньше DOMContentLoaded, соответственно никакой реакции на них не получаем.

Цитата:

Сообщение от alexrussia
Как правильно передать параметры картинки чтобы картинка сразу же после загрузки приняла нужные значения

Чем атрибуты width и height не устраивают?

alexrussia 22.03.2010 23:07

Цитата:

Сообщение от Octane (Сообщение 48675)
Чем атрибуты width и height не устраивают?

мне нужна чтоб точно над маленькой картинкой появилось изображение.
то что не известно это координата "y" которую я с помощью offsetTop нахожу. Поэтому и использую style.top


установил раньше src, ничего не изменилось также прыгает в ie (прыгает когда первый раз запускаешь в открывшемся html событие)

window.onload=function(){....
var im=document.createElement("img");
completeload(im,g,loading); - добавляет обработчик load 
im.src=s.substring(0,s.lastIndexOf('.'))+"kadr"+s.substring(s.lastIndexOf('.'),s.length);
im.className="imagebig";
im.setAttribute("name","big");
g.parentNode.appendChild(im);


function completeload(imeg2,g,funcs){
if (imeg2.complete)
funcs(imeg2,g);
else
crosslist(imeg2,"load",function(){funcs(imeg2,g);},0);}}


Уточню:прыгает это означает что сразу не назначается style.left style.top то есть сначала назначается пустой style а потом назначается нужный style.left и style.top
кстати я еще использую im.height и im.width так что до src никак не получится


Часовой пояс GMT +3, время: 18:57.