2011-01-06 10 views
7

Bardzo podoba mi się plugin leniwego ładowania i jestem wypatroszony, nie działa on w nowych przeglądarkach.Wtyczka Lazy Load ładuje obrazy jako zwoje użytkownika?

Czy mogę napisać własny kod, który nie ładuje obrazów pod zakładką, dopóki użytkownik nie przewinie?

<img _src="/fullscreen/img/You are everywhere 2.png" class='lazyLoad' /> 

jQuery('.lazyLoad').each(function(){ 
     var _elm= jQuery(this); 
     _elm.attr('src',_elm.attr('_src')); 

     //on DOM ready loop through each 
     //image with class=lazyLoad and add src attribute to it. 
}) 

Byłoby wspaniale, jeśli mogę dostać ten przybity, szkoda the appelsiini site nie jest obsługiwany dłużej.

Znalazłem stronę, która działa we wszystkich przeglądarkach http://haw-lin.com/ i używa bardzo podobnego skryptu wtyczki do http://www.appelsiini.net/projects/lazyload. Nie ma licencji MIT i trudno mi to rozszyfrować.

Jaką wtyczkę leniwego obrazu jQuery można polecić?

+1

W jakich przeglądarkach nie działa? –

+0

Ten na appelslini.net wydaje się działać dobrze dla mnie w firefoxie i chrome i safari – dstarh

+0

Safari chociaż to był mój test, który nie działał i powiedziano mi, że to błąd. Teraz nie jestem taki pewien –

Odpowiedz

3

Strona demonstracyjna jQuery image lazy load plugin wydaje mi się nie działać na FF3.6 na Macu. Oglądałem żądania HTTP z zakładką Net w Firebug i mogłem zobaczyć wszystkie załadowane obrazy.

Możesz wypróbować tę wtyczkę o nazwie JAIL, która działa idealnie (wymaga jednak pewnych zmian HTML). Szczególnie proponuję przejrzeć przykłady.

+2

Hej, dzięki za link, naprawdę użyteczny –

+0

dzięki Tara. Jeśli masz szansę, zagłosuj lub polub ją na stronie głównej projektu :) – sebarmeli

+0

Link do JAIL w dół. :( –

2

Można spróbować tego jQuery plugin I napisał, że używa komentarzy HTML do leniwego obciążeniem wszelkie arbitralne bitów HTML, w tym obrazów:

jQuery Lazy Loader Blog Post

jQuery Lazy Loader Plugin Page

Oto przykład:

<pre class=”i-am-lazy” ><!– 
    <img src=”some.png” /> 
–></pre> 

<pre class=”i-am-lazy” ><!– 
    <div>Any, html css img background, whatever. <img src=”some.png” /> </div> 
–></pre> 

<script type=”text/javascript” src=”jquery.lazyloader.js” ></script> 
<script type=”text/javascript” > 
$(document).ready(function() 
{ 
    $(’pre.i-am-lazy’).lazyLoad(); 
}); 
</script> 

Więc w zasadzie zawijasz zawartość, którą chcesz leniwym ładowaniem za pomocą znacznika zastępczego i wewnętrznego Komentarz HTML. Kiedy symbol zastępczy staje się widoczny w oknie roboczym, jest zastępowany łańcuchem HTML wewnątrz komentarza.

Możesz użyć dowolnego znacznika dla symbolu zastępczego, ale lubię pre, ponieważ renderuje się jako wymiar 0, gdy wewnątrz jest tylko komentarz.

+0

tak, twoje rozwiązanie działa, ale jest nie do zaakceptowania, ponieważ nie jest dyskretne, tzn. Twoje rozwiązanie nie będzie działać w przeglądarkach z wyłączonym js - nie będą wyświetlane żadne obrazy. O ile mi wiadomo, nie ma sposobu, aby zapobiec ładowaniu obrazów (w nowych przeglądarkach) po uruchomieniu dokumentu – scibuff

Powiązane problemy