Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Взять ширину img в google chrome (https://javascript.ru/forum/css-html-browser/5194-vzyat-shirinu-img-v-google-chrome.html)

miller 24.09.2009 22:34

Взять ширину img в google chrome
 
Всем доброго времени суток!

Столкнулся со следующей проблемой: необходимо взять ширину/высоту <img/> в браузере GoogleChrome. Использую jQuery, .width(), client/offsetWidth не помогают.

Octane 24.09.2009 23:21

Код покажите

miller 24.09.2009 23:27

Код выполняется в $(document).ready т.е. все картинки поидее загружены
$("#brands_gallery .item").each(function(){
	var width = $(this).find('.real img').width();
	var height = $(this).find('.real img').height();
	var left = ($("#brands_gallery .items .item").width()-width)/2;
	var top = ($("#brands_gallery .items .item").height()-height)/2;
	//...
});


Работает везде, кроме хрома.
Вариант с $(this).find('.real img').get(0).clientWidth; тоже не прокатывает.

Алерт выдаёт 0, при alert($(this).find('.real img').css('width')) выдаёт 0

HTML:

<div class="item">
	<p class="real"><img src="img/brands/1.png" alt="" /></p>
	<p class="hover"><img src="img/brands/1_hover.png" alt="" /></p>
</div>

Octane 24.09.2009 23:33

Цитата:

Сообщение от miller
Код выполняется в $(document).ready т.е. все картинки поидее загружены

Нет, это событие DOMContentLoaded, когда готова DOM-модель документа и доступна для изменения. Событие загрузки страницы (вместе с картинками) window.onload.

miller 24.09.2009 23:47

Не помогло, и в ИЕ6 стала появляться ошибка "Не поддерживается" прямо после строки вызова onload:

var galleryConstruct = function() {
	var width = $(this).find('.real img').width();
	var height = $(this).find('.real img').height();
}
window.onload = galleryConstruct();

Octane 24.09.2009 23:52

потому что вы присвоили обработчику события результат выполнения функции.
window.onload = galleryConstruct;

и вы же jQuery используете
$(window).load(…);

miller 24.09.2009 23:57

уже сделал так, не помогло

главное только в хроме..
с чем это может быть связано? даже в ие и опере всё работает

Octane 25.09.2009 00:01

Цитата:

Сообщение от miller
var galleryConstruct = function() {
	var width = $(this).find('.real img').width();
	var height = $(this).find('.real img').height();
}

А зачем $(this).find('.real img'), а не просто $('.real img')?

miller 25.09.2009 00:04

Виноват) функция большая, написал только проблемную часть.. пропустил строчку с each:

var galleryConstruct = function() {
	$("#brands_gallery").scrollable({horizontal:true});
	$("#brands_gallery .item").each(function(){
		var width = $(this).find('.real img').width();
		var height = $(this).find('.real img').height();
		//...
	});
}
$(window).load(galleryConstruct());

Octane 25.09.2009 00:09

Цитата:

Сообщение от miller
window.onload = galleryConstruct();

Цитата:

Сообщение от miller
$(window).load(galleryConstruct());

Цитата:

Сообщение от Octane
вы присвоили обработчику события результат выполнения функции

Прочитайте еще раз внимательно. Нужно передавать ссылку на функцию
Цитата:

Сообщение от Octane
window.onload = galleryConstruct;

или
$(window).load(galleryConstruct);


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