Autor Zpráva
senior
Profil
Pekný večer,

na zobrazenie obrázku z textového odkazu používam tento script
<a href="#" onmouseover="loadimage('imgtext/plavcicky.jpg', event);" onmouseout="hideimage();" onmousemove="">plavčíčky z Baywatchu</a>

V hlavičke stránky mám JS
 
<script type="text/javascript">

var imgobj;
    function loadimage(url, e)
    {
    if(document.getElementById("img-preview")==null)
      {
      imgobj=document.createElement("img");
      document.body.appendChild(imgobj);
      }
    else
      {
      imgobj=document.getElementById("img-preview");
      imgobj.style.display="block";
      }
    imgobj.setAttribute("src",url);
    imgobj.setAttribute("id","img-preview");
    moveimage(e);
    }
   
    function moveimage(e)
      {
      var posx = 0;
   var posy = 0;
   if (!e) var e = window.event;
   if (e.pageX || e.pageY)    {
      posx = e.pageX;
      posy = e.pageY;
   }
   else if (e.clientX || e.clientY)    {
      posx = e.clientX + document.body.scrollLeft
         + document.documentElement.scrollLeft;
      posy = e.clientY + document.body.scrollTop
         + document.documentElement.scrollTop;
   }
   // posx and posy contain the mouse position relative to the document
   // Do something with this information
   itop=posy+"px";
   ileft=posx+"px";
   imgobj.style.position="absolute";
   imgobj.style.top=itop;
   imgobj.style.left=ileft;
      }
   
   
    function hideimage()
    {
    imgobj=document.getElementById("img-preview");
    imgobj.style.display="none";
    }     
    </script>
    

Funguje to správne, ale má to jedinú chybu, že pri posunutí myši na iný link sa na chvíľu zobrazí posledný obrazok a až potom sa zobrazí ten správny obrázok. Ďakujem za pomoc.
Kubo2
Profil
senior:
že pri posunutí myši na iný link sa na chvíľu zobrazí posledný obrazok
To preto, lebo sa ďaľší obrázok najprv musí natiahnuť zo servera.
Skús si vyrobiť nejaký defaultný načítavací obrázok, ktorý pri načítavaní preloadneš (pomocou js new Image('/img/default-loading.gif');):
// ...
function hideimage() {
  imgobj.setAttribute("src", '/img/default-loading.gif');
  // ... ďaľší kód
}



Mimochodom taký loading obrázok si môžeš požičať napr. tento:

alebo tento:

A rôzne iné, každá (ja neviem, desiata?) webová stránka používa k niečomu takýto obrázok.
Nevravím, že je to priam legálne takto kradnúť obrázky, ale ak si obrázok iba požičiaš (na krátky čas), nebude to myslím vadiť.
senior
Profil
Kubo2:
Ďakujem veľmi pekne, tak toto ma nenapadlo. Hneď to idem vyskúšať. Ak by bol problém, tak sa ešte ozvem. Ešte raz ďakujem.
senior
Profil
Kubo2:
Neviem, či som to správne pochopil, tak toto new Image('/img/default-loading.gif'); som napísal takto:
<script type="text/javascript">
promenna = new Image();
promenna.src = "imgtext/default-loading.gif";
promenna.src = "imgtext/plavcicky.jpg";
//dalsie obr
</script>

<script type="text/javascript">
function hideimage() {
  imgobj.setAttribute("src", '/imgtext/default-loading.gif');
  // ... co napisat sem
}
</script>
senior
Profil
Kubo2:
Už to všetko funguje správne, iba sa nezobrazuje ten loading.gif. Kde mám chybu? Ďakujem za pomoc.
Kubo2
Profil
senior:
[#4] Namiesto toho komentára doplň pôvodný kód.
Odstráň riadok 4. Loading.gif by sa ti mal začať zobrazovať. Ak nezačne, napíšem pre teba takú menšiu živú ukážku
senior
Profil
Kubo2:
Chybu prečo sa ten Loading.gif nezobrazoval som už našiel - stiahol som iný obrázok a zabudol som prepísať názov gif-u :-(
Teraz to už funguje, ALE namiesto posledného zobrazeného obrázku mi tam zostane ten animovaný Loading.gif.
Ďakujem ti za pomoc a ochotu.
Kubo2
Profil
senior:
mi tam zostane ten animovaný Loading.gif
Tak som sa s tým trocha pohral: fungujúca živá ukážka + kód.
Išpiruj sa, prípadne si prečítaj kód čo som kde spravil.
Testované v Chrome na Ubuntu a tamtiež na Mozille.
Nebudem klamať, v Mozille to trochu laguje a v IE to asi nepôjde, ale to si doladíš.
senior
Profil
Kubo2:
Vďaka idem to pozrieť ;-)
Kubo2
Profil
senior:
Vďaka idem to pozrieť ;-)
Rado sa stalo :-)

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: