Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.12.2013, 20:35
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

событие по появлению img
В результате выполнения определенной функции в блоке
id=messages появляется изображение, скажите как создать функцию по появлению изображения в этом блоке
Ответить с цитированием
  #2 (permalink)  
Старый 22.12.2013, 20:55
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от imediasun1
появлению изображения
имеешь ввиду по окончанию загрузки изображения?
img.onload = function() {
    alert('Загружено!');
}
if (img.complete) {
    // картинка уже загружена (из кэша)
    img.onload();
}
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 23.12.2013, 00:52
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

да, но что то этот код не работает
http://imedia.in.ua/main/page/catalog_add
Ответить с цитированием
  #4 (permalink)  
Старый 23.12.2013, 07:38
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

img - это переменная, ссылающаяся на DOM-элемент изображения.
У тебя же она не определена в коде.
Кроме того, у тебя чуть ниже уже дублируется этот код, просто переписанный с использованием jQuery!
И загляни в консоль, там ошибки сыплются.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 23.12.2013, 15:24
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

удалил ошибки в консоли, скажите почему он определяет высоту как 0 в алерте?
Ответить с цитированием
  #6 (permalink)  
Старый 23.12.2013, 18:05
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

Вот у меня есть например такой блок с изображениями, как мне прописать при условии загрузки всех изображений выполнять такой то код на 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>
Ответить с цитированием
  #7 (permalink)  
Старый 23.12.2013, 18:40
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

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();
});
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 23.12.2013, 20:47
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

// берем все необходимые нам картинки
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
Ответить с цитированием
  #9 (permalink)  
Старый 23.12.2013, 21:09
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

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)
    });

Так работает все
Ответить с цитированием
  #10 (permalink)  
Старый 24.12.2013, 07:57
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

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

Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Событие click Гробовщик jQuery 1 31.07.2013 07:28
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46
событие элемента img _Dimarik__ Элементы интерфейса 7 17.08.2010 15:41
как отследить событие загрузки img? GrEb Events/DOM/Window 3 12.02.2010 16:47
У элемента img внутри form пропадает событие после onsubmit формы Eugene Events/DOM/Window 2 18.06.2009 19:21