Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][CSS]CSS - zapisanie tego za pomocą Javascript.
Forum PHP.pl > Forum > Przedszkole
ossUter
Siemanko.
Dzisiejszy problem mój polega na tym, że nie mam pojęcia jak przedstawić to:
  1. nav ul ul {
  2. display: none;
  3. }
  4.  
  5. nav ul li:hover > ul {
  6. display: block;
  7. }

Za pomocą JS, tzn; to jest od menu - jak na razie wysuwa się po najechaniu. Chcę zrobić to za pomocą kliknięcia (.click()), gdyby się udało.
Czyli - domyślnie aby nav ul ul miało display: none; a po kliknięciu w nav ul li pokazało się ul - display: block. Mógłbym liczyć na pomoc? Pozdrawiam.
kafowi
Przy użyciu samego CSS również istnieje możliwość zrobienia pseudo-zdarzenia click().
  1. <!DOCTYPE html>
  2. <meta charset="utf-8">
  3. <title>CSS :target menu</title>
  4. nav ul ul {display:none;}
  5. nav ul ul:target {display:block;}
  6. </style>
  7. </head>
  8. <nav>
  9. <ul>
  10. <li><a href="#aaa">Kliknij mnie</a><ul id="aaa">Bo mam cos pod sobą</ul></li>
  11. <li><a href="#iii">Kliknij mnie</a><ul id="iii">Bo mam cos pod sobą</ul></li>
  12. <li><a href="#uuu">Kliknij mnie</a><ul id="uuu">Bo mam cos pod sobą</ul> </li>
  13. <li><a href="#eee">Kliknij mnie</a><ul id="eee">Bo mam cos pod sobą</ul></li>
  14. <li><a href="#ooo">Kliknij mnie</a><ul id="ooo">Bo mam cos pod sobą</ul></li>
  15. </ul>
  16. </nav>
  17. </body>
  18. </html>
Comandeer
@kafowi można, ale w tym momencie za bardzo brudzi się adres. Już szybciej skorzystałbym tutaj z hacku z :checked - http://roberto.ovh.org/html-css/css_lightbox.html
A jak już :target to tylko jako fallback dla braku JS wink.gif
kafowi
Cytat(Comandeer @ 5.07.2015, 16:54:43 ) *
@kafowi można, ale w tym momencie za bardzo brudzi się adres. Już szybciej skorzystałbym tutaj z hacku z :checked - http://roberto.ovh.org/html-css/css_lightbox.html
A jak już :target to tylko jako fallback dla braku JS wink.gif

Świetna sprawa z tym :checked na pierwszy rzut oka, ale po obejrzeniu i sprawdzeniu musi tam wystąpić :focus, a on działa zarówno na LPM jak i na PPM wink.gif.
Comandeer
O lol, nie, nie musi. Tam kiedyś było demko galerii na :checked, stąd podlinkowałem w ciemno - a tu widzę jakaś zmiana nastąpiła biggrin.gif
"Prawdziwe" :checked: http://jsfiddle.net/Comandeer/3h7kjv4u/ + bardziej skomplikowane demko: http://bzdety.comandeer.pl/no-js.html
kafowi
Cytat(Comandeer @ 5.07.2015, 18:23:23 ) *
O lol, nie, nie musi. Tam kiedyś było demko galerii na :checked, stąd podlinkowałem w ciemno - a tu widzę jakaś zmiana nastąpiła biggrin.gif
"Prawdziwe" :checked: http://jsfiddle.net/Comandeer/3h7kjv4u/ + bardziej skomplikowane demko: http://bzdety.comandeer.pl/no-js.html

No teraz to ja rozumiem biggrin.gif, ale nie wpływa to negatywnie na wyniki wyszukiwarek?
(bo przy większym menu trochę tych inputów by się narobiło, nie wspominając, że nie ma formularza)
Comandeer
Akurat brak formularza to raczej nie problem. Nie wiem czy wpływa to jakoś negatywnie na wyniki wyszukiwania - trza by jakieś testy porobić. Ale szczerze to wątpię.

Hack, jak i :target wink.gif Z tym, że podczas gdy :checked pozwala wyhaczyć "click" w środowiskach bez JS, tak :target jest świetnym wyjściem do rozbudowania na nim implementacji w JS (wystarczy dorobić toggle dla elementu wskazywanego przez this.href). Natomiast samodzielnie ani jednego, ani drugiego w produkcji raczej bym nie użył.
ossUter
Dzięki wielkie, zastosowałem się do tego i działa wybornie: http://jsfiddle.net/Comandeer/3h7kjv4u/

Tylko... Czy w samym CSS jest jeszcze możliwość sprawdzenia, tak, aby kilknięcie po za obszar klas: toggle i toggler powodowało znowu display: none?
Comandeer
Można zrobić trick z rozciągnięciem niewidzialnego label nad całą stronę… ale to już IMO ohydny hack
ossUter
W takim razie jakich funkcji JS powinienem użyć?
Comandeer
Obadaj to, co podesłał @prz3kus z jQuery - to będzie najprostsze do wdrożenia. Jest jeszcze: http://api.jquery.com/toggle/
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.