Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomoc przy projekcie
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
kubasmta
Hej,

potrzebuję pomocy by zrobić coś tak mądrego co pomogłoby w ustawianiu klas względem globalnego zegara który jest wyświetlany i napisany w js w lewym górnym rogu. Zastanawiam się czy z racji tego iż godziny konferencji będą różne (każdego dnia mogą być inne to wprowadza administrator panelu administracyjnego) to czy js sam zaczyta i porówna (przez if albo jakieś inne ustrojstwo) że dana koneferencja minełą i wtedy uaktywni dla tego okienka specjalną klasę z css .unactive a gdy czas będzie się pokrywała zdaną konferencją to wtedy wprowadzi klasę .active.. Czy ktoś ma jakiś pomysł?

Dziękuję za jakąkolwiek pomoc

https://www.dropbox.com/s/57jlujbrmx0dj16/sale.jpg?dl=0
markonix
Przy każdej konferencji dodaj atrybut:
<div data-end-date="<?= $endDate; ?>"></div>

W JS dodaj skrypt który co X sekund sprawdzi po kolei względem owego czasu czy któraś data wygasła i nadaj klasę.

Oczywiście wcześniej - po załadowaniu nie czekaj na JS tylko od razu nadaj klasę unactive dla tych, które wygasły.
DamianWojakowski
Cytat(kubasmta @ 15.05.2016, 21:18:24 ) *
Zastanawiam się czy z racji tego iż godziny konferencji będą różne (każdego dnia mogą być inne to wprowadza administrator panelu administracyjnego) to czy js sam zaczyta i porówna


Jeśli jest tam taki skrypt, wtedy to zrobi, jeśli nie ma, wtedy będziesz musiał go napisać.

Z tego co widzę, godziny konferencji są podawane z minutami, możesz zajrzeć do kodu zegarka i zobaczyć, czy nie ma jakichś hooków lub eventów, aby się podpiąć pod zmianę minut w zegarku. Wtedy przy każdej zmienionej minucie mógłbyś robić "checka", czy konferencja się właśnie nie zaczęła (wtedy ma być podświetlona), albo czy jakaś się nie zakończyła (aby ją przyciemnić).

Jeśli zegarek takiego czegoś nie umożliwi, ani Tobie nie będzie się chciało w nim grzebać (aby dorobić taką funkcjonalność - choć to bym zalecał na drugim miejscu), wtedy możesz robić "checki" co X-sekund, jednak wtedy na pewno dojdzie do sytuacji, w której konferencje będą aktualizowane z lekkim opóźnieniem, np. na zegarku wybije 15.30, ale dopiero po 5 sekundach podświetli się konferencja zaczynająca się o 15.30, bo akurat tak się ułoży odliczanie.

Ostatecznym "leniwym" rozwiązaniem może być robienie "checka" co sekundę - w końcu dzisiejsze komputery na spokojnie radzą sobie z odpalaniem 1 instrukcji na sekundę - zalecałbym jednak podpięcie się pod zegarek (albo na hooka, albo na event - najlepiej na event).
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.