Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] Odliczanie i zapamiętywanie.
deluks1980
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 7.12.2010

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


Witam.

Mam pewien problem z 'countdownem' w jQuery. Biję się z tym już 2 dni, nie mogę wspaść na żaden dobry pomysł.

Dlatego piszę ten post - proszę Was, o pomoc:

Chodzi o to, że mam skrypt, który odlicza 60 sekund i wywołuje akcję. Problem w tym, iż muszę zapamiętać wartość sekundy przy jakiej użytkownik odświeżył stronę - czyli, jeśli pozostało 50 sekund, a użytkownik odświeżył stronę, to liczenie ma się odbywać tak jakby w 'tle' aby po ponownym załadowaniu strony (które trwało np. 3 sekundy) odliczanie zaczęło się od 47 sekund a nie od początku.

Mam nadzieję, że zrozumieliście. Liczę na Waszą pomoc. (IMG:style_emoticons/default/party.gif)

Pozdrawiam Serdecznie,
Jerzy z Kołobrzegu.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
flashdev
post
Post #2





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Zapamiętaj w cookies datę rozpoczęcia odliczania w formacie timestamp.
Go to the top of the page
+Quote Post
deluks1980
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 7.12.2010

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


Cytat(flashdev @ 7.12.2010, 02:00:52 ) *
Zapamiętaj w cookies datę rozpoczęcia odliczania w formacie timestamp.


W cookies chyba będzie trochę nie bezpiecznie, bo tu chodzi o dodawanie "życia" w grze co 2 minuty.

Doszedłem do takiego efektu końcowego:

  1. function startBarTimer() {
  2. $('#BarTimer').each(function(){
  3. $(this).countdown('destroy');
  4. var self = this;
  5. var id = $(this).attr('id');
  6. var interval = $(this).attr('interval');
  7. var total = parseInt( $(this).attr('total') );
  8. var current = parseInt( $(this).attr('current') );
  9. var statName = $(this).attr('statName');
  10. var offset = parseInt( $(this).attr('offset') );
  11. var inc = parseInt( $(this).attr('inc') );
  12.  
  13. $("#"+statName+"MaxValue").text(total);
  14. if( current < total ) {
  15. var options = {
  16. until: '+'+(interval - offset),
  17. format: 'MS',
  18. compact: true,
  19. onExpiry: function(){
  20. var current = parseInt( $('#BarTimer').attr('current') );
  21. current = current + inc;
  22. if (current > total) {
  23. current = total;
  24. }
  25. $('#BarTimer').attr('current', current);
  26. $("#"+statName+"CurrentValue").text(current);
  27. $("#"+statName+"MaxValue").text(total);
  28. if( current < total ){
  29. $(self).countdown('change' ,{until: "+"+interval}).css("color", "pink");
  30. $("#"+statName+"CurrentValue2").text("Refill?");
  31. }
  32. else
  33. {
  34. $("#"+statName+"CurrentValue2").text("");
  35. $(self).html( "" );
  36. }
  37. }
  38. };
  39. $(this).countdown( options ).css("color", "pink");
  40. }
  41. else
  42. {
  43. $("#"+statName+"CurrentValue2").text("");
  44. }
  45. });
  46. };


Jak widać, teraz jedynie pozostało by "jakims cudem" zmieniać zmienną offset (w sekundach). Zdaję się tutaj na Wasze umiejętności.

Pozdrawiam.

Pomoże ktos?...

Ten post edytował deluks1980 7.12.2010, 02:49:28
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 12:32