Autor Zpráva
Fury
Profil *
Zdravím,

potřeboval bych radu. Mám web, kde se mi mění po 4 vteřinách pozadí:

  
$(document).ready(function(){
    var newBg = ['02.jpg', '03.jpg', '04.jpg', '05.jpg', '01.jpg'];
    var path="img/bg/";
    var i = 0;
    var rotateBg = setInterval(function(){
        $('body').css('backgroundImage' ,  "url('" +path+newBg[i]+ "')");
        if(i==5)
         i=0;
         else
          i++;
    }, 4000);
    
    
  });
 

Obrázky na pozadí mají všechny okolo 90kB, ale stává se mi, že když se zobrazí vždy další obrázek v pozadí, problikne mi mezitím bílá stránka. Dají se nějak obrázky načíst dopředu, aby se toto nestávalo (nejsem si jistý zda je to doopravdy tím)? Nebo jiné řešení?

Díky moc za pomoc
juriad
Profil
Preload obrázku
Nebo hledej na zdejší diskusi image preload.

Opravdu chceš, aby uživatel zažíval šok každé 4 sekundy? Pokud jsou obrázky výrazně jiné, opravdu tím nikoho nepotěšíš.
Chamurappi
Profil
Reaguji na Furyho:
Obrázek vyrobený přes new Image má také událost onload, takže může celou animaci nastartovat až v době, kdy je všechno načtené.

$('body').css('backgroundImage' , "url('" +path+newBg+ "')");
Proč vyhledáváš každé čtyři sekundy <body>? Proč na tak triviální činnost používáš jQuery?
document.body.style.backgroundImage = "url('" +path+newBg[i]+ "')";

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: