Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   offsetWidth ie (https://javascript.ru/forum/misc/5111-offsetwidth-ie.html)

dvar 16.09.2009 12:52

offsetWidth ie
 
<div id="rrr"></div>
<img src="images/test.png" id="iii" />

<script type="text/javascript">
var im = new Image();				
		im.src = 'images/test.png';
		document.getElementById('rrr').insertBefore(im, null); 
		alert(im.offsetWidth); // 105 ?
alert(document.getElementById('iii').offsetWidth); // 100


</script>
если элемент создается динамически в ie offsetWidth показывает больше чем надо( ширина 100 а он показывает 105

Octane 16.09.2009 12:57

Определять размеры изображени нужно после их загрузки (img.onload). Обработчик события должен быть назначен до того, как элемент будет добавлен в документ.

dvar 16.09.2009 13:10

все происходит после загрузки, и onload и complete проверяется, все загружено) только вот значения свойства в ие больше, я вот хотел спросить есть ли такая проблема ie неправильно определять размеры? как это побороть, может с форматом png не дружит...

dvar 16.09.2009 13:17

експлореру png изображение не нравиться, другие нормально показывает(

Octane 16.09.2009 13:20

Цитата:

Сообщение от dvar (Сообщение 30273)
может с форматом png не дружит...

проблема чтоли с другим форматом опробовать?
А все margin, padding и border в CSS сбросили?

dvar 16.09.2009 13:27

вот попробовал потестить несколько десятков png изображений, в некоторых ie ставит на несколько px больше а в других меньше,
стили все убраны * {margin:0; padding:0; border:0; font-size:0; line-height:0;}

Octane 16.09.2009 13:39

Ну значит очередной фокус IE :)

Riim 16.09.2009 13:44

Если не почистить png-рисунок с прозрачностью от дополнительной инфы, то в IE он может смотреться темнее, чем в других браузерах, может и здесь это поможет.

dvar 16.09.2009 13:45

когда элемент создается через new Image, html код получается такой: <img src=""> а если документ с доктайпом надо правильно тег закрывать <img src="" /> и ie нормально показывает начинает offset, так что пропишу прям так)

x-yuri 17.09.2009 22:36

а можно ссылку на страничку или прикрпеить к сообщению все нужные файлы? И какая версия ie? Потому что у меня в ie6, 8 работает.


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