Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Dodawanie określinej liczby od odpowiedniej wartości co ustawiony czas.
Forum PHP.pl > Forum > Przedszkole
Mike122
Witam napisałem oto taki skrypt JS który zwiększa liczbę o 1 co 1 sekundę.
Jednak nie wiem jak zrobić aby do tej określonej liczby dodawał co sekundę określona wartość np. co 1 sekundę raz przybywa 0.5 a raz 300 wiem że w funkcji bym musiał określić dodatkowo taka wartość. Proszę o pomoc.
  1. <script type="text/javascript">
  2. function getUP(liczba, nazwa){
  3. getUPdiv = document.getElementById(name);
  4. wynik = Math.floor(liczba + 2);
  5. getUPdiv.innerHTML = wynik+"s";
  6. if(liczba <= 0){
  7. getUPdiv.parentNode.removeChild( getUPdiv );
  8. }else{
  9. setTimeout('getUP(' + ++liczba + ',"' + nazwa + '");', 1000);
  10. }
  11. }
kamil4u
Nie sprawdzam dalej gdyż już na początku mieszasz nazwy smile.gif :
Kod
getUPdiv = document.getElementById(name);

Nie masz zmiennej name, więc wszystkie operacje na zmiennej getUPdiv nie zadziałają

Poza tym napisz jeszcze raz o co Ci chodzi, gdzie podasz liczby które mają się dodawać, bo np. dużo nie mówi:
Cytat
np. co 1 sekundę raz przybywa 0.5 a raz 300
Mike122
  1. <script type="text/javascript">
  2. function getUP(liczba, okreslowna_liczba, nazwa){
  3. getUPdiv = document.getElementById(nazwa);
  4. wynik = Math.floor(liczba + okreslowna_liczba);
  5. getUPdiv.innerHTML = wynik+"s";
  6. if(liczba <= 0){
  7. getUPdiv.parentNode.removeChild( getUPdiv );
  8. }else{
  9. setTimeout('getUP(' + ++liczba + ',"' + nazwa + '");', 1000);
  10. }
  11. }


Chodzi o to że podaje do funkcji getUP aktualna liczbę np. 345120 i podaje drugą liczbę np. 12.5 czyli getUP(345120, 12.5, "nazwa"); i teraz funkcja co 1 sekundę dodaje do liczby 345120 wartość 12.5 czyli po 1 sek. będzie 345132,5 po 2 sekundach 345145 itd...
kamil4u
Kod
<span id="test">100</span>
<script>
function getUp(a,b){a=document.getElementById(a); a.innerHTML=+(a.innerHTML || 0)+b;}
setInterval("getUp('test',10)", 1000);
</script>

Można byto napisać lepiej - może poprawię jak będę miał czas smile.gif
Mike122
Witam skrypt bardzo fajny jednak nie do końca działa tak jak che ponieważ dane miedzy <span id="test"></span> mogą wyglądać tak <span id="test">1.346.134.912</span> więc chciałbym mu usuwał te wszystkie kropki dodał określoną wartość a następnie wyświetlił znów z kropkami (chodzi o to by kropkę wstawiał co 3 liczbę). Jenak naprawdę dużo pomogłeś.
Pawel_W
http://lmgtfy.com/?q=javascript+number+format

takie trudne?
Mike122
  1. function getUp(a,b){
  2. a = document.getElementById(a);
  3. a = a.innerHTML;
  4. a = a.replace(new RegExp("[\.]+","g"),"");
  5. a = a.replace(new RegExp("[^\\d.]+","g"),"");
  6. a = a.replace(new RegExp(",","g"),".");
  7. a=+(a|| 0)+b;
  8. alert(a);
  9. }
  10. setInterval("getUp('test',2)", 1000);


Wykombinowałem takie coś i nawet kropki usuwa jednia nie wyświetla dodawanej wartości.

Napisze jeszcze raz jak ta funkcja ma wyglądać:
  1. function getUp(dodaj, aktualnie, id){
  2. //źródło
  3. }


i wywołuję ją tylko po przez:
  1. <span id="test"></span><script type="text/javascript">getUp(2, '123.123.123.038', 'test');</script>

i ona już wyświetla co sekundę stan dla danego ID czyli 123.123.123.040 później 123.123.123.042 itd.. dana liczba jest co 1 sekundę w span o id test aktualizowana. Wyświetlać już w formacie z kropkami (czyli 123.123.123.040) nie musi ważne byle dobrze dodawało i kropki na początku usuwało.

Chodzi głównie o to by liczba aktualnej nie pobierało z jakiegoś określonego span tylko była ona definiowana w funkcji bezpośrednio i wyświetlało w danym span.
kamil4u
Witaj
Coś takiego?:
Kod
<span id="test"></span>
<script>
function getUp(a,b,c,e){b=b.replace(/\./g,"");c=document.getElementById(c);c.innerHTML=+(c.innerHTML || b)+a;}

setInterval("getUp(2,'123.123.123.038','test')", 1000);
</script>
Mike122
Dziś napisałem kolejny inny skrypt który nie działa tak jak ma działać czyli ja podaje wartość jaka ma dodawać co określony czas, czas określony w milisekundach oraz aktualny stan i id div'a / span'a. (Przeglądarka zawiesza się ktoś może powiedzieć dlaczego?
  1. function numberFormat(nStr){
  2. nStr += '';
  3. x = nStr.split('.');
  4. x1 = x[0];
  5. x2 = x.length > 1 ? '.' + x[1] : '';
  6. var rgx = /(\d+)(\d{3})/;
  7. while (rgx.test(x1))
  8. x1 = x1.replace(rgx, '$1' + '.' + '$2');
  9. return x1 + x2;
  10. }
  11.  
  12. function add(add, intime, stan, idspan){
  13. materials = document.getElementById( idspan );
  14. stan = Math.floor(stan);
  15. materials.innerHTML = numberFormat(stan); //Ta funkcje mam zdefiniowana wcześniej
  16. setTimeout('add(' + ++add + ',"' + intime + '","' + stan + '","' + idspan + '");', intime);
  17. }
  18.  
  19. <div id="dodaj" style="font-size: 120%; font-weight: bold;">5m, 0s</div>
  20. <script type="text/javascript">add(1, 1200.9, 3002313123123213.9, 'dodaj');</script>
  21.  
  22. <div id="dodaj2" style="font-size: 120%; font-weight: bold;">5m, 0s</div>
  23. <script type="text/javascript">add(3, 1100.9, 302313123123213.9, 'dodaj2');</script>
Pawel_W
Kod
var rgx = /(\d+)(\d{3})/;

co to jest?

jeżeli to ma być pattern do wyrażeń regularnych to chyba powinien być ujęty w ' '

EDIT:
po drugie, nie moze byc ++add, tylko add++, a po trzecie jezeli masz zdefiniowana funkcje add to nie mozesz tak nazwac zmiennej (chyba)
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.