ugrás a tartalomhoz

Oldal betoltesenek kesleltetese loading keppel

szmegma · 2010. Már. 13. (Szo), 12.16
SCRIPT MEGTEKINTESE MUKODES KOZBEN

Volna egy scriptem ami arra lenne hivatott, hogy oldal betolteskor eloszor 5 masodpercig mutasson egy loading kepet, majd eltunve pedig a tartalmat az oldalnak.

Sajnos nem igazan mukodik mert a tartalmat is mutatja, mikozben a loadingot is. A loading resz rendben van mert 5 masodperc utan eltunik.

Nem igazan tudtam rajonni, hogy hogyan lehetne rejteni a tartalmat amig loadingol.
<html>
<head>
<title></title>
</head>

<body onLoad="init()"> 
<div id="loading" style="position:absolute; width:99%; text-align:center; top:300px;"><img src="loading.gif" border="0"></div> 
<script> 
var ld=(document.all);
 
var ns4=document.layers;
var ns6=document.getElementById&&!document.all;
var ie4=document.all;
 
if (ns4)
	ld=document.loading;
else if (ns6)
	ld=document.getElementById("loading").style;
else if (ie4)
	ld=document.all.loading.style;
setTimeout(
function init() {
if(ns4){ld.visibility="hidden";}
else if (ns6||ie4) ld.display="none"; }

, 5000 ); 

</script>
<center><br><br><br><br><br><br>tartalom<br>tartalom<br>tartalom<br></center>
</body>
</html>
Koszonom.

Esetleg, ha van olyan megoldasa vkinek ami nem hasznal body onload-ot, azt szivesen fogadnam.
 
1

CSS

Poetro · 2010. Már. 13. (Szo), 14.52
Itt van egy működő példa:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="hu">
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>Cím</title>
  <style type="text/css">
    html.js #loading {
      display: inline;
    }
    #loading,
    html.loaded #loading {
      display: none;
    }
    html.js .content {
      display: none;
    }
    html.loaded .content {
      display: block;
    }
  </style>
</head>
<body>
  <img src="http://www.google.hu/intl/en_com/images/logo_plain.png" id="loading" alt="loading">
  <div class="content">
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    Proin vitae odio odio, sit amet sodales ligula.
    Nullam tortor ante, malesuada sed feugiat ac, cursus non turpis.
    Fusce at lectus eros, vehicula vehicula massa.
    Praesent dictum mollis pulvinar. Ut nisl enim, ornare a volutpat a,
    gravida vel neque. Maecenas quis quam a ligula bibendum suscipit
    quis sit amet dolor. Nunc dictum, orci ut dignissim dictum, orci metus
    venenatis libero, sit amet aliquet lectus felis ut est. Ut turpis ante,
    pellentesque vel aliquam ac, elementum non nunc. Nam dignissim enim non
    est aliquet molestie. Mauris at diam ligula, vitae feugiat ipsum.
    Pellentesque sollicitudin tincidunt massa, vitae sodales orci
    accumsan et.</p>
  </div>
  <script type="text/javascript">
  // Megnézzük, támogatott-e a `getElementsByTagName`.
  if (document.getElementsByTagName) {
    (function () {
      // Ha igen, akkor indul a tesztelés, megnézzük, megvan-e már a HTML elem.
      var html = document.getElementsByTagName('html');

      if (html.length) {
        // Adunk neki osztályt, hogy CSS-sel el tudjuk rejteni a tartalmat.
        html[0].className = html[0].className ? html[0].className + ' js' : 'js';

        window.onload = function () {
          // Várunk pár másodpercet
          setTimeout(function () {
            // Beállítjuk, hogy a tartalom be lett töltve,
            // ami CSS-sel megjeleníti a tartalmat.
            html[0].className += ' loaded';

            // Eltávolítjuk a loading jelzőnket
            var loading = document.getElementById('loading');
            if (loading) {
              loading.parentNode.removeChild(loading);
            }
          }, 5000);
        }

        // Megszakítjuk a loopot.
        return;
      }

      // Folyamatosan tesztelünk, amíg meg nem szakítjuk.
      window.setTimeout(arguments.callee, 50);
    })();
  }
  </script>
</body>
</html>
De azt áruld már el, honnan jöttek neked az ns4, ns6, ie4 változók, mivel ilyet kb a '90-es évek óta senki nem használ.
  • A fenti böngészők, már régen kihaltak,
  • Eleve ez a módszer már idejétmúlt, nem szép, és leginkább nem hatékony.
2

Koszonom! Eddig mukodik

szmegma · 2010. Már. 13. (Szo), 16.13
Koszonom!

Eddig mukodik rendesen minden bongeszoben amit kiprobaltam:

FF 3.6,
Opera 10.10,
IE 8.0,
Safari 4.0.5,
Avant 11.7,
Chrome 4.0.249,
Netscape 9.0.0.6

A kerdesem az lenne, hogy mukodik a fenti bongeszok regebbi verzioiban is, mert ha igen akkor ez a legjobb! :D

A cuccot vmelyik forumon talaltam, de a tied viszi a palmat!!!
3

getElementsByTagName

Poetro · 2010. Már. 13. (Szo), 16.23
Minden ami ismeri a getElementsByTagName függvényt, abban működni fog, és szinte minden böngésző IE5 óta tudja ezt.
4

:D

szmegma · 2010. Már. 13. (Szo), 17.28
Ertem!
Koszonom meg egyszer e remek kodot.
Udv!