![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 30.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Tworzę stronę wizytówkę swojej małej firmy, i potrzebuję wykonać rozwijane menu po kliknięciu na element. Moim celem jest wykorzystanie jak najkrótszego kodu, czyli importowanie biblioteki nie wchodzi w grę. Mniej więcej chce uzyskać taki efekt: a po kliknięciu na button: Szukając po internecie natrafiłem na coś takiego: Powyższy kod działa, lecz jedynie zmienia kolor, i potrzebuje dwóch buttonów. Próbowałem go zmodyfikować, lecz nic z tego nie wychodziło. Proszę o pomoc ![]() Pozdrawiam. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 30.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki działa, ale niestety w jedną stronę.
Co zrobić, by po ponownym kliknięciu na ten button przywrócił on poprzednią klasę (bym mógł zwinąć menu)? Ten post edytował Włodzimierz 30.11.2013, 21:20:59 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Moim celem jest wykorzystanie jak najkrótszego kodu, czyli importowanie biblioteki nie wchodzi w grę. Skąd taki dziwny cel?Powyższy kod: 1. Nie zadziała na wszystkich przeglądarkach. 2. Nie poradzi sobie w przypadku, gdy element będzie miał jeszcze jakieś dodatkowe klasy. Ten post edytował Crozin 30.11.2013, 21:25:13 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 30.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Nie chcę importować biblioteki ze względu na czas ładowania strony (no może te 80kB to nie wiele, ale jednak
![]() Znalazłem pewien temat, gdzie opisane jest jak to zrobić w czystym JS, ale instrukcje w odpowiedziach są podzielone, i kompletnie nie wiem jak je złożyć w całość: http://stackoverflow.com/questions/195951/...with-javascript @Crozin również nie wiem jak użyć Twojego kodu. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
up dodaj sobie spr czy wywołana została już funkcja np zrób to tak:
Ten post edytował com 30.11.2013, 21:38:53 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Nie chcę importować biblioteki ze względu na czas ładowania strony (no może te 80kB to nie wiele, ale jednak wink.gif ), a nie umiem tego cachować. Serio... 80 KiB? Przecież pierwszy lepszy obrazek na stronie będzie tyle zajmować. Zresztą i tak jest to pobierane tylko raz. A jak podlinkujesz z CDN-a (jQuery'owski, Google'owski), bardzo prawdopodobne, że będzie to już zcacheowane w przeglądarce użytkownika nim w ogóle otworzy Twoją stronę.Założyłem, że chodzi Ci o jQuery (80 KiB), a masz jeszcze całą masę innych bibliotek lżejszych pod względem objętości: http://en.wikipedia.org/wiki/Comparison_of...ript_frameworks PS. Jeżeli uwzględnić poza minimalizacją kodu jego kompresję (gzip) będzie to zapewne 40 - 60 KiB danych jedynie przy pierwszym pobraniu. W porównaniu do średniej krajowej, która niby ma wynosić 24 mbps (http://cdn.infographicsarchive.com/wp-cont...d-and-costs.jpg) to na prawdę zerowe obciążenie. Ten post edytował Crozin 30.11.2013, 21:52:54 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
@up zgadzam się, ale ta średnia krajowa na sierpień 2010 to mnie rozbroiła
![]() Ten post edytował com 30.11.2013, 21:56:17 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 30.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
@com eureka
@Crozin o tym, że jQuery jest cachowane automatycznie nie wiedziałem. W takim razie zmienia to moje podejście do sprawy- biblioteka jQ+ kilka linijek kodu będzie się szybciej wczytywać niż kilkanaście linijek w czystym JS ![]() ------ Jednak chyba użyję czystego JS. Wyczytałem, że jQ trzeba umieć cachować. Więc mam coś takiego:
Problem w tym, że skrypt szuka znaczników H1, a nie np. div'a z określonym ID. Próbowałem zamienić na , ale niestety nie działa. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Musi działać, pewnie nie umiesz tego używać
![]() Btw: Cytat var h=document.getElementsByTagName("H1")[0]; var typ=document.createAttribute("class"); (...) var h=document.getElementsByTagName("H1")[0]; var typ=document.createAttribute("class"); Copy-paste programming nie jest zbyt dobra technika, duplikujesz kod niepotrzebnie pisząc 2razy to samo.. (Lepiej wywalić duplikatu i przenieść kod przed if'a EDIT: A do podmiany klasy używa sie zmiennej className, nie musisz tworzyć ręcznie żadnych atrybutów Spróbuj tak: document.getElementById('identyfikator-elementu').className = 'klasa1 klasa2 klasa3'; (Do className możesz przypisać kilka klas oddzielonych stacjami) Ten post edytował PrinceOfPersia 1.12.2013, 13:55:51 -------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 30.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem, czy Cię dobrze zrozumiałem (nie działa): [edit: działa zapomniałem zamknąć- "}", lecz jedynie dodaje klasę"klasa2" do class="", i działa w jedną stronę]
Cytat Musi działać, pewnie nie umiesz tego używać wink.gif (wrzuć to, co ci nie działa) JS to dla mnie czarna magia ![]()
Cytat Lepiej wywalić duplikatu i przenieść kod przed if'a Nie bardzo wiem o co chodzi. Ten post edytował Włodzimierz 1.12.2013, 14:23:45 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.05.2025 - 09:42 |