какое событие запускается, когда элемент показывается пользователю?

у меня есть страница с большим количеством изображений. Браузер не имеет смысла загружать их все, если пользователь еще не прокрутил вниз до того места, где находятся изображения. я подумал о привязке элемента img к обработчику событий, который срабатывает, когда содержащий div будет виден (в том смысле, что пользователь прокрутил достаточно, чтобы элемент был в области просмотра). затем этот обработчик перезапишет атрибут src, и изображение загрузится.

какое событие я ищу?


person Dan    schedule 25.05.2012    source источник
comment
Вы можете просто использовать любой jquery-плагин отложенной загрузки, такой как этот: appelsiini.net/projects/lazyload   -  person xbonez    schedule 26.05.2012
comment
События как такового нет. Техника, которую вы ищете, называется ленивой загрузкой. stackoverflow.com/questions/8509878/   -  person Pekka    schedule 26.05.2012


Ответы (2)


Нет собственного события jQuery, делающего то, что вы хотите. Вам нужно будет использовать событие scroll, чтобы получить положение прокрутки, получить видимые изображения и загрузить их.

Уже есть плагины, которые делают это за вас. Возможно, вам нужен внешний модуль jQuery: http://code.google.com/p/jquery-appear/

Это может быть дубликат этого вопроса: Загрузить изображения когда они входят в видимую часть браузера?

person Pierre    schedule 25.05.2012
comment
Технически его вопрос спрашивает «какое событие запускается». Хотя я согласен с вами, что гораздо лучше использовать зрелый плагин, это не ответ на его вопрос. - person xbonez; 26.05.2012
comment
Вот почему я только что отредактировал вопрос;) Спасибо за комментарий. - person Pierre; 26.05.2012

$(window).scroll(function(){

 // if user has scrolled to 250px 
 if ($(this).scrollTop() > 250){ 
    // load your images,
 } 
})

Лучшим подходом было бы размещение div внизу и использование события mouseenter для определения того, хочет ли пользователь больше изображения.

$('#the_bottom_div').mouseenter(function(){
   // If user has placed mouse on bottom,load images (like facebook does)
})
person Jashwant    schedule 25.05.2012