Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sprawdzanie czy div ma display: visible;, (nie chcę gotowca, chcę poradę)
eko_moto
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 8.01.2006
Skąd: z Wawy

Ostrzeżenie: (0%)
-----


mam taki kod w JS:

Kod
<script language="Javascript>
function sh(id) {
    
    if (document.getElementById) { // DOM3 = IE5, NS6
  if (document.getElementById(id).style.display == "none"){
      document.getElementById(id).style.display = 'block';
  } else {
      document.getElementById(id).style.display = 'none';      
  }    
    } else {
  if (document.layers) {    
      if (document.id.display == "none"){
    document.id.display = 'block';
      } else {
    document.id.display = 'none';
      }
  } else {
      if (document.all.id.style.visibility == "none"){
    document.all.id.style.display = 'block';
      } else {
    document.all.id.style.display = 'none';
      }
  }
    }
}


oraz HTML:

  1. <a href="#" onClick="sh('galeria');">Pokaz/Ukryj Galeria</a>
  2. <a href="#" onClick="sh('home');">Pokaz/Ukryj Home</a>
  3. <div style="display: none;" id="galeria">tutaj tresc gallery</div>
  4. <div style="display: none;" id="home">tutaj tresc home</div>


i chodzi mi o to, że jak klikniemy w np. "Pokaz/Ukryj Galeria" a
<div id="home"> bedzie mial display:visible; to zamknie
<div id="home"> a wyswietli <div id="galeria">
To ma być taki sprawdzacz czy dwa div-y nie bedą otwarte.

Pytanie: Czy da się to napisać w JS? Jeśli się da to proszę o poradę, jak.

Ten post edytował eko_moto 24.01.2006, 20:34:10
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
LBO
post
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


musisz stworzyc predefiniowana tablice z idkami ktore ma obslugiwac menu...
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script language="Javascript">
function sh(id) {
    /*
  predefiniowana tablica z
  elementami obslugiwanymi
  przez menu
    */
    modules = new Array('galeria', 'home');
    for (i = 0; i < modules.length; i++) {
     if (i != id) {
            //alert(modules[i] + ' != ' + modules[id]);
            document.getElementById(modules[i]).style.display = 'none';
        } else {
            //alert(modules[i] + ' == ' + modules[id]);
            document.getElementById(modules[i]).style.display = 'block';
        }
    }
}
</script>
</head>

<body>
<a href="#" onClick="sh(0);">Pokaz/Ukryj Galeria</a><br />
<a href="#" onClick="sh(1);">Pokaz/Ukryj Home</a>
<div style="display: none;" id="galeria">tutaj tresc gallery</div>
<div style="display: none;" id="home">tutaj tresc home</div>
</body>
</html>


dziala pod IE 5, IE 6, Firefoxem, Netscape 7/8, Opera 7/8, Mozila 1.7/1.8

Ten post edytował LBO 24.01.2006, 21:15:37
Go to the top of the page
+Quote Post
eko_moto
post
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 8.01.2006
Skąd: z Wawy

Ostrzeżenie: (0%)
-----


wielkie dzięki, chodzi śpiewająco!
(IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
Go to the top of the page
+Quote Post
LBO
post
Post #4





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


do atrybucie HREF wpisz:
Kod
javascript:void(0);

wtedy w przegladarka nie traktuje tego jako czysty link, bo inaczej robi sie zapis w historii browsera, i uaktywnia sie przycisk BACK

Ten post edytował LBO 24.01.2006, 21:47:17
Go to the top of the page
+Quote Post
TAMLYN
post
Post #5





Grupa: Zarejestrowani
Postów: 49
Pomógł: 1
Dołączył: 6.01.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Znalazłem ten kod przypadkiem, ale jest czymś czego od dawna szukałem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Tylko mam jedno pytanko... Co zrobić, aby wszystkie div'y się "zamknęły"? (IMG:http://forum.php.pl/style_emoticons/default/blink.gif)

---------------------

Ok, znalazłem rozwiązanie (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Wystarczy stworzyć "pustego" div'a (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Ale natrafiłem także na błąd (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) Jeżeli wewnątrz jednego div'a wstawię drugiego, nawet o innym id niż jest w skrypcie, to wszystko się sypie i wyświetla mi wszystkie div'y prócz tego "pustego" (chyba, bo jego nie widzę (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) Jest na to jakaś rada?

---------------------

Ok, błąd był po mojej stronie (IMG:http://forum.php.pl/style_emoticons/default/sleep.gif) Przepraszam za zaśmiecanie tematu (IMG:http://forum.php.pl/style_emoticons/default/sleep.gif) (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)

Ten post edytował TAMLYN 10.01.2007, 19:17:22
Go to the top of the page
+Quote Post
Zajec
post
Post #6





Grupa: Zarejestrowani
Postów: 1 086
Pomógł: 8
Dołączył: 10.12.2003

Ostrzeżenie: (0%)
-----


Przy okazji planuję zapomnieć o wszystkim innym niż document.getElementById. To rozwiązanie jest obsługiwane przez:
IE5 wzywć, Operę 7 wzwyż i Firefoksa 1 wzwyż. Więc nie ma obaw, że jakaś popularna przeglądarka sobie nie poradzi.
Go to the top of the page
+Quote Post
TAMLYN
post
Post #7





Grupa: Zarejestrowani
Postów: 49
Pomógł: 1
Dołączył: 6.01.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Czyli powinno zostać coś takiego? (IMG:http://forum.php.pl/style_emoticons/default/blink.gif)

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  4. <title>Untitled Document</title>
  5. <script type="text/javascript">
  6. function sh(id) {
  7. /*
  8. predefiniowana tablica z
  9. elementami obslugiwanymi
  10. przez menu
  11. */
  12. modules = new Array('galeria', 'home');
  13. for (i = 0; i < modules.length; i++) {
  14. if (i != id) {
  15. document.getElementById(modules[i]).style.display = 'none';
  16. } else {
  17. document.getElementById(modules[i]).style.display = 'block';
  18. }
  19. }
  20. }
  21. </head>
  22.  
  23. <ul>
  24. <li><a href="java script:void(0);" onClick="sh(0);">Pokaz/Ukryj Galeria</a></li>
  25. <li><a href="java script:void(0);" onClick="sh(1);">Pokaz/Ukryj Home</a></li>
  26. </ul>
  27. <div style="display: none;" id="galeria"><p>tutaj tresc gallery</p></div>
  28. <div style="display: none;" id="home"><p>tutaj tresc home</p></div>
  29. </body>
  30. </html>


Nie znam się dobrze na Javie i JS (IMG:http://forum.php.pl/style_emoticons/default/sleep.gif) "

------------------
W kodzie uwzględniłęm poprawki @zajec'a i @LBO

Ten post edytował TAMLYN 11.01.2007, 12:15:24
Go to the top of the page
+Quote Post
Zajec
post
Post #8





Grupa: Zarejestrowani
Postów: 1 086
Pomógł: 8
Dołączył: 10.12.2003

Ostrzeżenie: (0%)
-----


Niby dobrze, poza pewnymi innymi błędami... Bezpośrednio w body nie można wstawiać tekstu. Należy w jakiś blok go wrzucić. Listę ondośników (jak sądzę, to chcesz zrobić) należy zrobić za pomocą listy, czyli <ul> i <li>.

No i osoby bez JavaScript nie będą mogli przechodzić pomiędzy działami. Po co takie udziwnienie, nie można po prostu dwóch podstron zrobić?
Go to the top of the page
+Quote Post
TAMLYN
post
Post #9





Grupa: Zarejestrowani
Postów: 49
Pomógł: 1
Dołączył: 6.01.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Mój skrypt wygląda zupełnie inaczej (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Trochę go przerobiłem... I nie chcę robić z tego menu, a zastąpić tym iframkę (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ne razie tylko się domyślam, że to zadziała (IMG:http://forum.php.pl/style_emoticons/default/dry.gif) Co do osób z Java (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ta strona jest dla osób mających Flash'a i Jave (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Później zrobię drugą wersję - alternatywną (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Uważam to za dobre rozwiązanie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 08:34