Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ładowanie obrazka
Forum PHP.pl > Forum > Po stronie przeglądarki
Rastman
Mam proste pytanko. Na stronce będę miał jeden większy obrazek JPG. Chciałbym ,żeby obrazek ładował się na końcu i podczas ładowania wyświetlił się np:napis "ładowanie grafiki". Nie znam za bardzo JS. Jakies podpowiedz?
revyag
Możesz użyć xmlHTTPRequest. Obrazek wsadzasz do innego pliku np. img.html
  1. <img src="obrazek.jpg" />

W pliku index.html załatwiasz resztę:
Kod
<script type="text/javascript">
function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}

function loadImg(){
    var xmlhttp = getHTTPObject();
    var area = document.getElementById("obrazek");
    
    area.innerHTML = "<p>Ladowanie obrazka.....</p>";
    xmlhttp.open("GET","img.html");
    
    xmlhttp.onreadystatechange = function() {
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
            area.innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.send(null);
}
</script>

  1. <div id="obrazek">
  2.  
  3. </div>
  4. <script type="text/javascript">loadImg()</script>

Minus tego rozwiązania jest taki że jak ktoś ma js wyłączone to będzie problem snitch.gif
Rastman
dzięki, jeszcze tylko przetrawię kod i mogę sie brać do roboty
Zajec
Cytat(revyag @ 2005-05-25 11:07:34)
Minus tego rozwiązania jest taki że jak ktoś ma js wyłączone to będzie problem snitch.gif

A to nie opiera się przypadkiem o wtyczkę ActiveX?
FiDO
Mnie sie wydaje, ze Ajax to armata na mrowke w tym przypadku... przekombinowanie.. Mozna to przeciez zrobic prosciej:
  1. <?xml version="1.0" encoding="iso-8859-2" ?>
  2. <!doctype html public "-//W3C//DTD XHTML 1.1//EN"
  3. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
  5. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  6. <script language="JavaScript" type="text/javascript">
  7. <!--
  8.  
  9. var img_src = "test.jpg";
  10.  
  11. function loadImg(target)
  12. {
  13. var img = new Image();
  14.  
  15. img.onload = function(e) {
  16. var im = document.createElement('IMG');
  17. var obj= document.getElementById(target);
  18. im.src = this.src;
  19. obj.innerHTML = '';
  20. obj.appendChild(im);
  21. }
  22. img.src = img_src;
  23. }
  24. //-->
  25. </script>
  26. </head>
  27. <body onload="loadImg('obrazek');">
  28.  
  29. <div id="obrazek">
  30. Trwa ładowanie <strong>obrazka</strong>, proszę czekać...
  31. </div>
  32.  
  33. </body>
  34. </html>
Rastman
no właśnie to będzie tylko jeden obrazek
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.