Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Dodawanie określinej liczby od odpowiedniej wartości co ustawiony czas.
Mike122
post
Post #1





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


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. }


--------------------

Największy błąd ze wszystkich błędów to nie słuchać dobrych rad. Nikt nie jest doskonały i nie należy się obrażać za konstruktywną krytykę.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
kamil4u
post
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
Mike122
post
Post #3





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


  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...


--------------------

Największy błąd ze wszystkich błędów to nie słuchać dobrych rad. Nikt nie jest doskonały i nie należy się obrażać za konstruktywną krytykę.
Go to the top of the page
+Quote Post
kamil4u
post
Post #4





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


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

Ten post edytował kamil4u 1.08.2009, 15:54:20


--------------------
Go to the top of the page
+Quote Post
Mike122
post
Post #5





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


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ś.


--------------------

Największy błąd ze wszystkich błędów to nie słuchać dobrych rad. Nikt nie jest doskonały i nie należy się obrażać za konstruktywną krytykę.
Go to the top of the page
+Quote Post
Pawel_W
post
Post #6





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

Ostrzeżenie: (0%)
-----


http://lmgtfy.com/?q=javascript+number+format

takie trudne?
Go to the top of the page
+Quote Post
Mike122
post
Post #7





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


  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.

Ten post edytował Mike122 1.08.2009, 21:32:19


--------------------

Największy błąd ze wszystkich błędów to nie słuchać dobrych rad. Nikt nie jest doskonały i nie należy się obrażać za konstruktywną krytykę.
Go to the top of the page
+Quote Post
kamil4u
post
Post #8





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


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>


--------------------
Go to the top of the page
+Quote Post
Mike122
post
Post #9





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


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>


--------------------

Największy błąd ze wszystkich błędów to nie słuchać dobrych rad. Nikt nie jest doskonały i nie należy się obrażać za konstruktywną krytykę.
Go to the top of the page
+Quote Post
Pawel_W
post
Post #10





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

Ostrzeżenie: (0%)
-----


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)

Ten post edytował Pawel_W 2.08.2009, 20:01:00
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 23:53