• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jedno pytanie odnośnie Intersection Observer API

Object Storage Arubacloud
0 głosów
626 wizyt
pytanie zadane 1 czerwca 2018 w JavaScript przez Artek Stary wyjadacz (11,800 p.)
Dzięki IntersectionObserver API można wywołać funkcję gdy widoczność jakiegoś elementu przekracza ustaloną wartość. Ja natomiast potrzebowałbym wywołać funkcję gdy widoczność pewnego elementu jest mniejsza niż określona wartość. Da się tak?

1 odpowiedź

0 głosów
odpowiedź 1 czerwca 2018 przez Comandeer Guru (601,550 p.)
wybrane 3 czerwca 2018 przez Artek
 
Najlepsza
Tak.
komentarz 1 czerwca 2018 przez Artek Stary wyjadacz (11,800 p.)
Jakieś szczegóły?
komentarz 1 czerwca 2018 przez Comandeer Guru (601,550 p.)

MDN ma dobry przykład. Wszystko rozchodzi się o wartość tzw. tresholda.

komentarz 3 czerwca 2018 przez Artek Stary wyjadacz (11,800 p.)

No czyli wystarczy tu pokombinować : 

entries.forEach(function(entry) {
    if (entry.intersectionRatio > prevRatio) {

Zastanawia mnie tylko jedna rzecz, po co jest ta pętla foreach?

komentarz 3 czerwca 2018 przez Comandeer Guru (601,550 p.)
Bo obserwatory zawsze zwracają tablicę wyników.
komentarz 3 czerwca 2018 przez Artek Stary wyjadacz (11,800 p.)
No właśnie tego nie czaję, czemu listę(chociaż należałoby chyba powiedzieć tablicę) a nie jeden obiekt?
2
komentarz 3 czerwca 2018 przez Comandeer Guru (601,550 p.)
Bo obserwator nie ma obowiązku natychmiast powiadomić o wykrytej zmianie. Jeśli w krótkim czasie zajdzie więcej niż jedna zmiana, wówczas obserwator zwróci je wszystkie naraz.
komentarz 3 czerwca 2018 przez Artek Stary wyjadacz (11,800 p.)
Aha, no to teraz jasne. Dzięki.
komentarz 3 czerwca 2018 przez Artek Stary wyjadacz (11,800 p.)

@Comandeer,  Chociaż nadal nie rozumiem dlaczego informacje na MDN zdają się radykalnie różnić od rzeczywistości. Na MDN napisano : 

A threshold of 1.0 means that when 100% of the target is visible within the element specified by the root option, the callback is invoked.

No o.k wywołanie zwrotne zostanie uruchomione gdy cały element będzie widoczny - żadna filozofia. No to skoro tak to jak wytłumaczyć fakt iż w poniższym przykładzie wywołanie zwrotne jest uruchamiane w dokładnie odwrotnej sytuacji - czyli gdy jakakolwiek część elementu jest wyświetlana na ekranie.

https://codepen.io/anon/pen/VdevRK?editors=1111

komentarz 3 czerwca 2018 przez Artek Stary wyjadacz (11,800 p.)
edycja 3 czerwca 2018 przez Artek
edit : literówka w nazwie właściwości obiektu :/ Uwielbiam takie błędy :/ Tak przy okazji - wywołanie zwrotne jest odpalane zawsze na początku przy tworzeniu obiektu.

Podobne pytania

0 głosów
1 odpowiedź 279 wizyt
–1 głos
1 odpowiedź 663 wizyt
pytanie zadane 30 lipca 2016 w Offtop przez Boby Obywatel (1,110 p.)
0 głosów
1 odpowiedź 256 wizyt
pytanie zadane 8 listopada 2016 w JavaScript przez Montu Początkujący (480 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...