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

Okienko blokujące fragment strony

Mały hosting, OGROMNE możliwości
0 głosów
256 wizyt
pytanie zadane 8 maja 2016 w JavaScript przez Else Stary wyjadacz (12,260 p.)
Witam, chciałbym się dowiedzieć w jaki sposób, zrobić taki efekt, żeby część strony np. jeden div był przyciemniony i treść w nim zablokowana. Wyświetlałoby się po środku przyciemnienia okienko po zamknięciu którego efekt by znikał. Zastanawia mnie najbardziej w jaki sposób można uzyskać taki efekt tylko dla części strony(jednego diva i innych w nim zawartych), bo jeśli chodzi o całość strony, to jest wiele poradników w internecie, ale do czegoś takiego nie znalazłem ani jednego.

Pozdrawiam, Else.

1 odpowiedź

+3 głosów
odpowiedź 8 maja 2016 przez ScriptyChris Mędrzec (190,190 p.)
edycja 8 maja 2016 przez ScriptyChris
 
Najlepsza

Coś takiego?

http://codepen.io/ChrissP92/pen/KzJXRa

Opis:

Tworzysz sobie element (może być DIV albo konkretny tag z HTML5), którego pozycjonujesz np. na środku elementu (za pomocą position: absolute;), który ma przykryć. Nadajesz mu klasę o nazwie np. dim:

.element.dim
{
  background: grey;
  opacity: 0.4;   // zwiekszasz przezroczystosc
  pointer-events: none; // wylaczasz eventy dla myszki
}

Dodajesz w JS EventListener'y, w które po kliknięciu przycisków, dodają i usuwają odpowiedni klasy CSS.

Elementowi, który nakładasz możesz też dodać klasę o nazwie np. hide i tam ustawić display: none;, aby po kliknięciu zniknął.

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events

https://developer.mozilla.org/en-US/docs/Web/CSS/opacity

https://css-tricks.com/almanac/properties/p/pointer-events/

komentarz 8 maja 2016 przez Else Stary wyjadacz (12,260 p.)
dokładnie to, dzięki. Mam takie putanie. Dałoby się, żeby nie można było kopiować teksty spod spodu
komentarz 8 maja 2016 przez ScriptyChris Mędrzec (190,190 p.)

Tak. Dopisz w .element.dim "user-select: none;"

https://developer.mozilla.org/en-US/docs/Web/CSS/user-select

 

komentarz 8 maja 2016 przez Else Stary wyjadacz (12,260 p.)

Dzięki działa, ale dopiero po wklejeniu wszystkiego tj.

    user-select: none;
            -moz-user-select: none;
            -webkit-user-select: none;
            -ms-user-select: none;

Mam takie pytanko. Czy każda z tych linijek jest dla innej przeglądarki?

komentarz 8 maja 2016 przez ScriptyChris Mędrzec (190,190 p.)

Tak, każda z tych linijek to tzw. prefix służący temu, aby dana przeglądarka mająca problem z tą funkcjonalnością mogła to obsłużyć.

Dlatego warto przed zastosowaniem czegoś w CSS sprawdzić, w jakim stopniu jest to obsługiwane przez przeglądarkę:

http://caniuse.com/#search=user-select

Podobne pytania

+2 głosów
1 odpowiedź 708 wizyt
pytanie zadane 31 stycznia 2023 w PHP przez Grzegorz Mikina Dyskutant (8,060 p.)
+1 głos
1 odpowiedź 209 wizyt
+1 głos
1 odpowiedź 208 wizyt

93,715 zapytań

142,629 odpowiedzi

323,259 komentarzy

63,255 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...