Pri vytváraní webovej aplikácie sa môžete stretnúť s situáciami, keď potrebujete sledovať aktuálny stav viditeľnosti. Stáva sa to, že musíte reprodukovať alebo pozastaviť účinok animácie alebo videa, znížiť intenzitu alebo sledovať správanie užívateľa pre Analytics. Na prvý pohľad sa táto funkcia zdá byť pomerne jednoduchá na predaj, ale nie je to tak. Sledovanie užívateľskej aktivity - pomerne komplikovaný proces.
Tam je viditeľnosť stránky API, ktorá vo väčšine prípadov funguje skvele, ale nespracuje všetku možnú neviditeľnosť karty prehliadača. Viditeľnosť stránky API pošle viditeľnosť udalostiZmeniť, takže poslucháči vedia, že stav viditeľnosti stránky sa zmenil. Nespúšťa udalosť v niektorých prípadoch, ak je okno alebo príslušný karta prehliadača ukrytý mimo dohľadu. Ak chcete zvládnuť niektoré z týchto prípadov, musíme použiť kombináciu zaostrenia a rozmazaných udalostí v oboch dokumentoch aj okno.
Takže, z tohto článku sa dozviete, ako vytvoriť jednoduchý komponent reagovať, ktorý sleduje stav viditeľnosti stránky.
Kroky
Ak chcete vytvoriť aplikáciu reagovania, použije sa tu CodeSAndBox (môžete použiť aj aplikáciu Create-Reaction-App). Vytvoríme malú aplikáciu, v ktorej sa zobrazí video HTML5 Element Video, len vtedy, ak je karta prehliadača v zaostrení alebo aktívny, inak sa automaticky pozastaví. Video sa používa na uľahčenie testovania aplikačných funkcií.
jeden. Začnite s vytvorením najjednoduchšej časti, to znamená, že sú komponentné video. Bude to jednoduchá zložka s booleanovým aktívnym a reťazcom SRC parametrov obsahujúcich URL pre video. Ak je aktívne rekvizity pravdivé, video sa bude prehrať. Inak sa zastaví.
2. Vytvorte jednoduchú reagujúcu triedu a prvok video s jeho zdrojovým kódom hosting URL prenášaného pomocou SRC. Tu je nový REF API pripojiť odkazy na DOM-NODE VIDEO. Nakonfigurujete video na prehrávači AVTO, za predpokladu, že keď spustíme aplikáciu, stránka bude aktívna.
Safari automaticky prehrá multimediálne prvky bez interakcie používateľa. Porovnávacia metóda je veľmi vhodná pri spracovaní účinkov, keď sa zmení vlastnosť komponentov. Preto sa táto metóda použije na hranie a pozastavenie videa na základe aktuálnej hodnoty tohto.Profesionálov.Aktívny.3. Vytvorte funkčnú pomôcku. Rozdiely v prefixoch prehliadača nie sú vždy vhodné použiť určité API a jeden z nich. Vytvoríme jednoduchú funkciu utility, ktorá bude riešiť tieto rozdiely a vráti jedno API na základe prehliadača používateľa. Vytvorte a exportujte túto funkciu z PagebrnitaTiUtils.Js v adresári SRC.
V tejto funkcii použijeme vyhlásenie IF in ... na vrátenie rozhrania API špecifické pre prehliadač. Je možné vidieť, že pridáme prefix MS pre Internet Explorer a prefix WebKit pre prehliadače Webkit. Uložíme požadované API v skrytých a viditeľních, a vrátime ich z funkcie ako jednoduchého objektu. Nakoniec exportujeme funkciu.4. Prejdite na hlavnú zložku. Zapuzdreme všetky videozáznamové sledovanie logiky v triede triedy reagovať pomocou šablóny Render Podops. Vytvorte komponent triedy VISIBILITYMANAGER. Tento komponent bude spracovať a odstrániť všetky udalosti založené na dom poslucháčov.
päť. Začnite importovaním predtým vytvorenej pomocnej funkcie a zavolajte ho, aby ste získali správny API prehliadača. Potom vytvorte komponent reagovania a inicializujte svoj stav s jedným nepriateľským inštalovaným v TRUE. Toto pole boolean bude zodpovedné za stav viditeľnosti stránky.
6. V zložkeDidMount Pridať poslucháč udalostí na dokumentáciu pre viditeľnosťZmeniť pomocou tejto metódy.NosiebribilityZmeniť ako psovod. Tiež pridať poslucháč udalostí pre zaostrenie a rozmazanie udalostí v dokumente, ako aj prvku okna. Tentokrát to nainštalujeme.ForcevisiByRe a to.ForceVisibilityFalse ako manipulátory pre zaostrenie udalostí a rozmazanie.
7. Potom vytvorte metódu riadkovZmeniť, ktorá berie argument Forceflag. Argument ForceFlag sa použije na určenie, či je metóda spôsobená z dôvodu udalosti alebo zaostrenia a rozmazania. Je to preto, že metódy ForcevisiByRUE a ForcevisiByribility nerobia nič okrem metódy rukovätnosti, ktorá s pravdivou a falošnou hodnotou pre Forceflag.
osem. Vo vnútri metódy rukoväzbariteľnosti, najprv skontrolujte, či je hodnota logického argumentu Forgeflag (ak sa volá z ovládacieho ústrojenstva VISIBYZMENTY, vysielaným argumentom bude objekt synteticevent).
Ak je to boolean, skontrolujte, je to pravda alebo nepravdivé. Keď je hodnota pravdivá, zavolajte metódu SETVISIBILITY S TRUER alebo zavolajte na falošnú metódu. Metóda nastavenia používa to.Nastavte metódu na aktualizáciu nevisliteľnej hodnoty v stave komponentu.Ak ForceffAg nie je boolean, skontrolujte hodnotu skrytého atribútu v dokumente a podľa toho zavolajte metódu SETVISIBILITY. Dokončuje logiku sledovania stavu stránky.deväť. Vytvorte viac komponentov. Ak to chcete urobiť, použite vzor omietky. To znamená, že namiesto toho, aby tento komponent z renderovanej metódy, nazývame.Profesionálov.S týmto funkciou.Štát.nepriateľský.
10. Nainštalujte aplikáciu React v DOM v indexovom súbore.Js. Importovať dve reagovať viditeľnosťManager a video komponenty a vytvoriť komponent APP pripojením. Funkciu vyjadrujeme ako detský prvok komponentu viditeľnostiManager, ktorý je nevyhnutný a prenáša na video komponent na výstup. Video URL tiež prenášame ako SRC pre video komponent. Takto je to, ako je komponenta VisibleManager založená na render Podrody. Na konci používame metódu reakcie.RENDER PRE POUŽÍVANIE APLIKÁCIE NA DOM-NODE S "ROOTNÝM" IDENTIFIER.