Autor Zpráva
Leomato
Profil
takto vyzor: http://img156.imageshack.us/img156/9342/statusf.png
Takže mám tam nastavené čas dostavby napr. 1296580600 (+25 min.). Aktualny čas - čas postavenia = čas stavby. A ja z toho času stavby potrebujem zez JS vypočítať v koĺkých % je budova (to viem urobiť). Ale neviem ako urobiť to aby sa to zobrazilo v takom statusbare a aby to bolo aktualizované bez obnovenia prehliadača.
Witiko
Profil
Leomato:
Progressbar element zatím není štandardný HTML element, musíš využít nějakou knihovnu 3. strany / vytvořit si statusbar vlastní pomocí stylování blokových elementů. Řešení v jquery UI:

http://jqueryui.com/demos/progressbar/

Nicméně osobně nedoporučuji používat, jestliže daný framework využiješ jen na tento jeden efekt.
Leomato
Profil
dik
Chamurappi
Profil
Reaguji na Leomata:
pruh.style.width = n + "%";
cislo.innerHTML = n + " %";
… kde n bude počet procent a pruh a cislo vhodně nastylované elementy. I s časovačem to bude šest řádků, žádná věda…


Reaguji na Witika:
Nicméně osobně nedoporučuji používat
Já ho nedoporučuji důrazně. Kdyby chtěl použít framework, stačí mu na to bohatě samotné jQuery.
Leomato
Profil
A prečo cez framework? Veď stačí ak si to vypočíta koľko % to má vypísať za 1 sekundu a proste to prida..
Witiko
Profil
Leomato:
To je správný duch. :)
Leomato
Profil
duch. ?
Witiko
Profil
Leomato:
prístup
Leomato
Profil
jáááj :D
Leomato
Profil
hm... mam asi neco taketo:
<style>
#pruh{
	width: 100px;
	background-color: red;
	height: 20px;
}
</style>
<div id="pruh"> </div>
<div id="cislo"></div>
<script>
var cas=3000;
var uplynulo=1;
var n=Math.round(uplynulo/(cas/100));
var zasek = (cas/uplynulo);

document.getElementById("pruh").style.width = n;
document.getElementById("cislo").innerHTML = n + " %";

function zvetsi1() {
if(n==100){
}
else {
n++;
}
document.getElementById("pruh").style.width = n;
document.getElementById("cislo").innerHTML = n + " %";
}
window.setInterval("zvetsi1()", 1000);

</script>


Ale neviem ako mám vypočítať kolko to pripočita za 1 sekundu
joe
Profil
(1000 / 3000) * uplynulo

A to uplynulo budeš zvětšovat o jedničku, takže tam ve funkci zvetsi1 bude uplynulo++

Výsledek toho co jsem napsal bude to, co budeš po každé vteřině přidávat, snad to tak je, ta matematika.. :)
Witiko
Profil
Leomato:
var pruh = document.getElementById("pruh"),
    cislo = document.getElementById("cislo"),
    cas = 3000,
    uplynulo = 1,
    n = Math.round(uplynulo / (cas / 100)),
    zasek = (cas/uplynulo), interval;
      
pruh.style.width = n + "px";
cislo.innerHTML = n + " %";
interval = window.setInterval(zvetsi, 1000);

function zvetsi() {
  if(++n === 100)
    window.clearInterval(interval);
  pruh.style.width = n + "px";
  cislo.innerHTML = n + " %";
}


Rozměry musí mít jednotku (pixely),
Funkci setInterval předáváme odkaz na funkci, ne řetězec.
Po funkční stránce jsem ti to nekontroloval.

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: