Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   событие по появлению img (https://javascript.ru/forum/dom-window/43822-sobytie-po-poyavleniyu-img.html)

imediasun1 22.12.2013 20:35

событие по появлению img
 
В результате выполнения определенной функции в блоке
id=messages появляется изображение, скажите как создать функцию по появлению изображения в этом блоке

danik.js 22.12.2013 20:55

Цитата:

Сообщение от imediasun1
появлению изображения

имеешь ввиду по окончанию загрузки изображения?
img.onload = function() {
    alert('Загружено!');
}
if (img.complete) {
    // картинка уже загружена (из кэша)
    img.onload();
}

imediasun1 23.12.2013 00:52

да, но что то этот код не работает
http://imedia.in.ua/main/page/catalog_add

danik.js 23.12.2013 07:38

img - это переменная, ссылающаяся на DOM-элемент изображения.
У тебя же она не определена в коде.
Кроме того, у тебя чуть ниже уже дублируется этот код, просто переписанный с использованием jQuery!
И загляни в консоль, там ошибки сыплются.

imediasun1 23.12.2013 15:24

удалил ошибки в консоли, скажите почему он определяет высоту как 0 в алерте?

imediasun1 23.12.2013 18:05

Вот у меня есть например такой блок с изображениями, как мне прописать при условии загрузки всех изображений выполнять такой то код на jquery
<div id="page_slider">
<ul id="slider">
<li><img src='<?=$slider_img1;?>' alt="Создание сайтов" />
<li><img src='<?=$slider_img2;?>' alt="Изготовление веб сайтов" />
<li><img src='<?=$slider_img3;?>' alt="Разработка интернет проектов" />
<li><img src='<?=$slider_img4;?>' alt="Web design" />
</ul>
</div>

danik.js 23.12.2013 18:40

var $images = $('#slider img');
var loaded = 0;
var inc = function() {
    loaded++;
    if (loaded == $images.length) {
        alert('loaded');
    }
};
$images.load(inc).each(function() {
    if (this.complete)
        inc();
});

imediasun1 23.12.2013 20:47

// берем все необходимые нам картинки
var $img2 = $('#messages2 img');
         
// ждем загрузки картинки браузером
$img2.load(function(){
    // удаляем атрибуты width и height
    $(this).removeAttr("width")
           .removeAttr("height")
           .css({ width: "", height: "" });
  
    // получаем заветные цифры
    var width  = $(this).width();
    var height = $(this).height();
	alert(width+'х'+height);

Так почему же в этом случае ответ 300x0?
Помогите пожалуйста разобраться в этом
http://imedia.in.ua/main/page/catalog_add

imediasun1 23.12.2013 21:09

var img = $("#messages img")[0]; // Получаем IMG нашей картинки
var pic_real_width, pic_real_height;
$("<img/>") // Сделаем в памяти копию этой картинки, чтобы избежать проблем с CSS
    .attr("src", $(img).attr("src"))
    .load(function() {
        // Здесь копия нашей картинки загружена и можно получить её размеры
        pic_real_width = this.width;   // Учтите: $(this).width() не сработает
        pic_real_height = this.height; // потому что картинка находится в памяти.
		alert(pic_real_width+'x'+pic_real_height)
    });

Так работает все

ruslan_mart 24.12.2013 07:57

Цитата:

Сообщение от imediasun1
.attr("src", $(img).attr("src"))

.prop('src', img.src);

;)


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