Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Box po naciśnięciu przycisku?
Forum PHP.pl > Forum > Przedszkole
Micchaleq
Witam serdecznie,

Od niedawna zaczynam uczyć się JavyScripta i w sumie jej dzieci czyli AJAX i jQuery.

Moim aktualnym celem jest stworznie menu, które po naciśnięciu będzie otwierało obok jakby dymek ze zlinkowanymi obrazkami.

Ogólnie to co próbowałem w czystej javie to zrobić

  1. <a href="#" onclick="wykonaj('a')">a</a>
  2. <div id="link_a">
  3. <a href="#" onclick="wykonaj('b')">b</a>
  4. <div id="link_b">


teraz w js

zapisuje sobie kod

  1. function menu(gdzie)
  2. {
  3. var pole = document.getElementById('link_' + gdzie);
  4. pole.class = "link_" + gdzie;
  5. }


// funkcja w js teraz moze być błędnie zapisana bo do konca nie pamietam jak to leciało bo jestem w pracy ale jakoś tak.

Proszę mi powiedzieć, czy takie połączenie wystarczy by nadać div-owi o id link_a klasę link_a
Czy trzeba to zrobić trochę inaczej.

Oczywiście tego, że trzeba by jeszcze zapisywać czy jakiś jest otwarty i go zamykać to wiem chodzi mi jedynie o połączenie tego bo zapisująć tak nie działało mi to .
strife
Hej,

Nie jestem do końca pewien, ale to jest wynik tego co chcesz osiągnąć? http://www.designgala.com/demos/collapse-expand-jquery.html

Druga sprawa to taka, że wszystkie tagi muszą być pozamykane zawsze. I jak mówisz, że używasz jQuery to to rób, kod będziesz miał bardziej przejrzysty i łatwiejszy w dalszym rozwijaniu.

Jeżeli chcesz osiągnąć to co Ci podałem w linku wyżej to tak, wystarczy nadać odpowiednie klasy dla div'ów, które chcemy rozszerzać / chować, wtedy robisz akcję typu onClick na elemencie, który ma to powodować i odpowiednio to obsługujesz np. w jquery wystarczy stworzyć $.click, a w ciele tej funkcji ustawic $.toggle na elementach, które mają się chować, rozwijać.

np. http://api.jquery.com/toggle/

PS. Proszę, abyś używał BBCode do wstawiania kodu źródłowego.

PS2. I nie ładnie tak w pracy chodzić po forum tongue.gif
Micchaleq
Przepraszam ze podaje kogoś stronę, ale jest tutaj podobny efekt do tego który chce osiągnąć :

http://www.vert.pl/projektowanie-stron.html

tutaj boxy otwierają się w lewo.

Ja chcę to zrobić podobnie ale aby boxy otwierały się w górę. // ale to to już jest kwestia css-a



PS: Soki za bb, ale zapomniałem bo pisałem z palca.

PS2: wiem o divach ale to tak z rozpędu i PS wyżej
strife
No to tutaj będzie podobnie do tego co napisałem smile.gif $.toggle(), np.

  1. $('#clickme').click(function() {
  2. $('#book').toggle('slow', function() {
  3. // Animation complete.
  4. });
  5. });


gdzie #clickme to element, który użytkownik klika, aby się coś rozwineło i teraz tam gdzie masz #book to jest ten div, który chcesz wyświetlić użytkownikowi i tyle. Zacznij od zaprojektowania prostego schematu w html'u najpierw, a potem się tym pobaw, ale z grubsza tak to będzie wyglądać. Od Ciebie zależy jak to będzie wyglądało, mechanizm działa tak, że po kliknięciu pojawi się div, po kolejnym schowa.
Micchaleq
W takim razie dziś sie tym pobawie, aktualnie dziękuje za pomoc jak cos napiszę to pokaże, pewnie będa błędy więc hmmm wink.gif

Witam, muszę trochę odświeżyć temat, ponieważ mam jedno pytanie.

Zrobiłem juz sobie efekt który chciałem, jednak mam problem z pewnym mankamentem.

Otóż moje menu przylatuje mi z lewej strony ekranu zamiast się rozwijać. Jak temu zaradzić?

oto moje css:
  1. #win_menu_bot{
  2. position: absolute;
  3. margin: -10px 0px 0px 783px;
  4. background-color: #e0d5c7;
  5. width: 215px;
  6. height: 20px;
  7. display: none;
  8. }
  9. #win_menu{
  10. position: absolute;
  11. top: -510px;
  12. left: 498px;
  13. background-color: #e0d5c7;
  14. width: 500px;
  15. height: 500px;
  16. display: none;
  17. z-index: 1000;
  18. }


i js

  1. $(".seo").click(function()
  2. {
  3. if(menu != "seo"){
  4. hide();
  5. $('#seo_menu_bot').toggle('slow', function(){});
  6. $('#seo_menu').toggle('slow', function(){});
  7. menu = "seo";
  8. }else{
  9. $('#seo_menu_bot').toggle('slow', function(){});
  10. $('#seo_menu').toggle('slow', function(){});
  11. menu = "seo";
  12. }
  13. }
  14. );
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.