Autor Zpráva
jarda_z_pole
Profil *
Ahoj kluci, jsem úplně v koncích. Potřeboval bych pomoct.
Vůbec netuším jako zařídit, aby se za slovem zobrazily tři tečky, které by se zobrazovaly v intervalu jako jedna tečka, pak druhá tečka, pak třetí, pak znovu od první... něco jako loading.
Moc vám děkuju... zahřívá se mi z toho moc hlava.
Bronzi
Profil
Úplně jednoduše a univerzálně třeba takto:

JS:
var initValue = null;
var iterator = 0;
setInterval(function(){

  iterator++;
  var el = document.getElementById('nacitany_obsah');

  if(initValue === null) initValue = el.innerHTML;
  
  el.innerHTML = initValue;
  for(var i = 0; i < iterator; i++) el.innerHTML += '.';
  
  if(iterator == 3) iterator = 0;

}, 400);

HTML:
<div id="nacitany_obsah">
Nějaký tvůj text
</div>
jarda_z_pole
Profil *
Moc dík, funguje.
Já vás javascriptový borce obdivuju... teď nevím, jak mám udělat to, aby ty tečky byly červené...
Radek9
Profil
jarda_z_pole:
To už je věc CSS.
jarda_z_pole
Profil *
Ok, jen je blbý, že to bere data pro jedno ID. Když mám na stránce 4 prvky, které chci, aby takto fungovaly, tak to musím napsat 4 x.
Bronzik
Profil *
Tak to můžeš celé zobecnit takto:
function efekt(id){
var initValue = null;
var iterator = 0;
setInterval(function(){
 
  iterator++;
  var el = document.getElementById(id);
 
  if(initValue === null) initValue = el.innerHTML;
  
  el.innerHTML = initValue;
  for(var i = 0; i < iterator; i++) el.innerHTML += '.';
  
  if(iterator == 3) iterator = 0;
 
}, 400);
}

A na konci dokumentu napíše

efekt('id1');
efekt('id2');
efekt('id3');
efekt('id4');
peta
Profil
<style>#tecky {color:#f00;font-weight:bold;}</style>
<div id="tecky"></div>
<script>
var el, sh, i;
el = document.getElementById('tecky');
sh = [".","..","..."];
i = 0;
setInterval(function(){el.innerHTML = sh[i];i=(i+1)%sh.length;}, 400);
</script>

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:

0