Hei. Tarvitsen sellaista latauskoodia. Eli kun tulee jonnekkin sivulle jossa on paljon kuvia yms. niin lukee vaikka "Odota, sivu latautuu" tai joku kuva jossa latautuu. Löytyykö koodia?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title>Kuvasivu</title> <script> function piilotaLatausDiv() { var ele = document.getElementById("loaddiv"); ele.style.display = "none"; } </script> </head> <body onLoad="piilotaLatausDiv();"> <div id="loaddiv"> Loading website.. </div> <br> </body> </html>
onLoad suoritetaan vasta kun sivu on kokonaan ladattu joten tämän pitäisi toimia
Voit laittaa kuvien taustakuvaksi pyörivän tilannekuvakkeen.
Miksi käyttäjälle pitää kertoa, että sivusto latautuu? Eikö sitä huomaa muuten tai auttaako se jotakin kertoa, että vielä latautuu?
Minua kiinnostaisi kuulla lähtökohtainen tarkoitus tälle.
reca kirjoitti:
Miksi käyttäjälle pitää kertoa, että sivusto latautuu? Eikö sitä huomaa muuten tai auttaako se jotakin kertoa, että vielä latautuu?
Minua kiinnostaisi kuulla lähtökohtainen tarkoitus tälle.
Jos surffaaja siirtyy sivulle, jolla on raskasta sisältöä, voi hän häiriintyä valkoisesta ruudusta ja paniikissa hakata päivitä-nappia aloittaen koko prosessin uudestaan ja uudestaan.
veikkaan että ennen paniikkia käyttäjä on jo siirtynyt toisaalle.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title>Kuvasivu</title> <script> function piilotaLatausDiv() { var ele = document.getElementById("loaddiv"); ele.style.display = "none"; } </script> </head> <body onLoad="piilotaLatausDiv();"> <div id="loaddiv"> Loading website.. </div> <br> </body> </html>
Siis mihin laitan nyt sen sisällön joka pitää latautua? Oon kokeillut kaikkia kohtia ja kaikkea mahdollista mitä tiedän.
Ihan mihin vaad body-tagin sisään, paitsi tuon divin =).
Skriptihän odottaa, että koko sivu on latautunut...
Siis kun se lataa niin pitäisi tulla toi "Loading website.. " mutta ei tullut. Selain mozilla.
Laitoin näin koodin:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title>Kuvasivu</title> <script> function piilotaLatausDiv() { var ele = document.getElementById("loaddiv"); ele.style.display = "none"; } </script> </head> <body onLoad="piilotaLatausDiv();"> sisältö.... <div id="loaddiv"> Loading website.. </div> <br> </body> </html>
Kannattaa käyttää jQuery-nimeä kantavaa js-kirjastoa. onReady-eventtiin voi laittaa koodin, joka suoritetaan kun sivu on valmis. Ensin lataat js-päätteisen tiedoston osoitteesta http://jquery.com/ käytät tätä tai vastaavaa rakennetta:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi-FI" lang="fi-FI"> <head> <title>Loader</title> <script type="text/javascript" src="jqueryfilunnimi.js"></script> <script type="text/javascript"> $(document).ready(function() { $("#loader").css("display", "none"); $("#content").css("display", "inline"); }); </script> <style type="text/css"> #loader { width: 400px; position: fixed; left: 50%; margin-left: -200px; padding: 30px; background-color: #c0c0c0; -moz-border-radius: 8px; -webkit-border-radius: 8px; } #content { display: none; } </style> </head> <body> <div id="loader"> Ladataan, odota blabla... </div> <div id="content"> <!-- Koko sivun sisältö tähän --> </div> </body> </html>
Jos haluat hifistellä visuaalista puolta, lisää tekstin kaveriksi animoitu loader-kuva sivulta http://ajaxload.info/ ja kivan raidallisen taustan saat generoitua http://stripegenerator.com/ sivulla.
Sisältö ei tuu. Lukee kokoajan ladataan.
Hae jQuery-kirjasto ja laita polku kyseiseen tiedostoon tekstin src="jqueryfilunnimi.js" paikalle edellisessä koodissa, ts. lataa kirjasto sivun head-osiossa.
Going offtopic:
Sivuillani on kuvia, jotka latautuu hitaasti, mutta haluaisin, ettei niiden hitaus aiheuttaisi muiden osian lataamista vaan kuvan kohdalla voisi pyöriä juuri tuollainen http://ajaxload.info/ kuva. Muuta osaa sivusta pitäisi pystyä käyttämään latauksen aikana. Mikä auttaisi?
Edit. Tai itse asiassa en tarvitse kuvaa, koska minulla on phpllä generoitu kuva, jossa on tekstiä. Teksti on kuvassa hitaan php-skriptin takia, joten jollakin pitäisi saada joko se kuva tai teksti näkymään ilman, ettei sivun muut osat hidastu.
CSS riittää: img { background: url('pyorivakuva.gif') no-repeat 50% 50%; }
Merri kirjoitti:
CSS riittää:
img { background: url('pyorivakuva.gif') no-repeat 50% 50%; }
Nyt se pyörivä kuva tulee vasta hitaan kuvan latautumisen jälkeen sen hitaan kuvan taustalle
Missä järjestyksessä headerisi lataa tyylitiedostot sun muut? Lisäksi välimuistittaminen voi auttaa, esim. .htaccess gzip and cache
Muoks!
Ah joo, tietysti kuville täytyy määritellä jokin leveys ja korkeus. Riippuu hieman siitä, mitä olet tekemässä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.