Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][CSS] Pokazywanie/ukrywanie dwóch div'ów na raz, za pomocą jednego kliknięcia
Ok-a
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 8.09.2009

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


Szukałam rozwiązania już w wielu miejscach, ale jeżeli jest tu gdzieś na forum i je przegapiłam, to byłabym wdzięczna za linka.


Chodzi o to, aby pokazać/ukryć dwa różne bloki tekstu, klikając na jeden odnośnik. Bloki te znajdują się w różnych częściach strony.

W tej chwili mam jakiś skrypt, który świetnie radzi sobie z rozwijaniem jednego bloku. Niestety o skryptach Javy nie wiem prawie nic, więc nie wiem, czy da się tam coś dopisać, żeby to działało też na ten drugi blok (i czy w ogóle coś takiego jest możliwe).

W HEAD to wygląda tak (mam nadzieję, że nie ma błędów - już nawet nie pamiętam skąd to skopiowałam...):
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. function toggleLayer( blok1 )
  3. {
  4. var elem, vis;
  5. if( document.getElementById )
  6. elem = document.getElementById( blok1 );
  7. vis = elem.style;
  8. if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
  9. vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
  10. vis.display = (vis.display==''||vis.display=='block')?'none':'block';
  11. }
  12. </script>
[JAVASCRIPT] pobierz, plaintext

W BODY:
  1. <a href="java script:toggleLayer('blok1')">więcej</a>
  2.  
  3. <div id="blok1">Ukryty tekst</div>


Naiwnie próbowałam tak samo nazwać te dwa bloki (IMG:style_emoticons/default/rolleyes.gif) ale nadal rozwijało tylko jeden.
Będę wdzięczna za jakąkolwiek pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
CyberDuck_
post
Post #2





Grupa: Zarejestrowani
Postów: 135
Pomógł: 15
Dołączył: 17.08.2009

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


Masz tu, a oni niech sie kloca (IMG:style_emoticons/default/biggrin.gif)
Kiedys cos takiego potrzebowalem i zmienilem nieco kod dla
swoich potrzeb. Dzieki temu mozna :
1. schowac lub wyswietlic na przemian pojedyncze bloki
2. schowac lub wyswietlac kilka blokow na raz
3. schowac lub wyswietlic kilka blokow na przemian.
Znaczy jesli jeden jest widoczny to drugi schowany, itd ...

  1. function ShowOrHide(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18, d19, d20, d21, d22, d23, d24 , d25, d26, d27, d28, d29, d30) {
  2.  
  3. if (d1 != '') DoDiv(d1);
  4. if (d2 != '') DoDiv(d2);
  5. if (d3 != '') DoDiv(d3);
  6. if (d4 != '') DoDiv(d4);
  7. if (d5 != '') DoDiv(d5);
  8. if (d6 != '') DoDiv(d6);
  9. if (d7 != '') DoDiv(d7);
  10. if (d8 != '') DoDiv(d8);
  11. if (d9 != '') DoDiv(d9);
  12. if (d10 != '') DoDiv(d10);
  13. if (d11 != '') DoDiv(d11);
  14. if (d12 != '') DoDiv(d12);
  15. if (d13 != '') DoDiv(d13);
  16. if (d14 != '') DoDiv(d14);
  17. if (d15 != '') DoDiv(d15);
  18. if (d16 != '') DoDiv(d16);
  19. if (d17 != '') DoDiv(d17);
  20. if (d18 != '') DoDiv(d18);
  21. if (d19 != '') DoDiv(d19);
  22. if (d20 != '') DoDiv(d20);
  23. if (d21 != '') DoDiv(d21);
  24. if (d22 != '') DoDiv(d22);
  25. if (d23 != '') DoDiv(d23);
  26. if (d24 != '') DoDiv(d24);
  27. if (d25 != '') DoDiv(d25);
  28. if (d26 != '') DoDiv(d26);
  29. if (d27 != '') DoDiv(d27);
  30. if (d28 != '') DoDiv(d28);
  31. if (d29 != '') DoDiv(d29);
  32. if (d30 != '') DoDiv(d20);
  33.  
  34. }
  35.  
  36. function DoDiv(id) {
  37. var item = null;
  38. if (document.getElementById) {
  39. item = document.getElementById(id);
  40. } else if (document.all){
  41. item = document.all[id];
  42. } else if (document.layers){
  43. item = document.layers[id];
  44. }
  45. if (!item) {
  46. }
  47. else if (item.style) {
  48. if (item.style.display == "none"){ item.style.display = ""; }
  49. else {item.style.display = "none"; }
  50. }else{ item.visibility = "show"; }
  51. }
  52.  
  53. function ShowOrHideAll(d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18, d19, d20, d21, d22, d23, d24 , d25, d26, d27, d28, d29, d30) {
  54.  
  55. if (d1 != '') DoDivAll(d1);
  56. if (d2 != '') DoDivAll(d2);
  57. if (d3 != '') DoDivAll(d3);
  58. if (d4 != '') DoDivAll(d4);
  59. if (d5 != '') DoDivAll(d5);
  60. if (d6 != '') DoDivAll(d6);
  61. if (d7 != '') DoDivAll(d7);
  62. if (d8 != '') DoDivAll(d8);
  63. if (d9 != '') DoDivAll(d9);
  64. if (d10 != '') DoDivAll(d10);
  65. if (d11 != '') DoDivAll(d11);
  66. if (d12 != '') DoDivAll(d12);
  67. if (d13 != '') DoDivAll(d13);
  68. if (d14 != '') DoDivAll(d14);
  69. if (d15 != '') DoDivAll(d15);
  70. if (d16 != '') DoDivAll(d16);
  71. if (d17 != '') DoDivAll(d17);
  72. if (d18 != '') DoDivAll(d18);
  73. if (d19 != '') DoDivAll(d19);
  74. if (d20 != '') DoDivAll(d20);
  75. if (d21 != '') DoDivAll(d21);
  76. if (d22 != '') DoDivAll(d22);
  77. if (d23 != '') DoDivAll(d23);
  78. if (d24 != '') DoDivAll(d24);
  79. if (d25 != '') DoDivAll(d25);
  80. if (d26 != '') DoDivAll(d26);
  81. if (d27 != '') DoDivAll(d27);
  82. if (d28 != '') DoDivAll(d28);
  83. if (d29 != '') DoDivAll(d29);
  84. if (d30 != '') DoDivAll(d30);
  85.  
  86. }
  87.  
  88. function DoDivAll(id) {
  89. var item = null;
  90. if (document.getElementById) {
  91. item = document.getElementById(id);
  92. } else if (document.all){
  93. item = document.all[id];
  94. } else if (document.layers){
  95. item = document.layers[id];
  96. }
  97. if (!item) {
  98. }
  99. else if (item.style) {
  100. if (item.style.display == "yess"){ item.style.display = ""; }
  101. else {item.style.display = "none"; }
  102. }else{ item.visibility = "show"; }
  103. }


Mozna chowac najwiecej do 30 blokow. Dla wiekszosci stron to w zupelnosci wystarcza.
Teraz jak to wywolac ...
Oczywiscie kod umieszczasz w sekcji head np tak :
  1. <script language="JavaScript" type="text/javascript" src="tablepokazschowaj.js"></script>

Teraz kawalki kodu :
  1. <tr id="opis02" style="display:none">

Tak wlasnie oznaczasz sobie dowolna nazwa bloki. W tym wypadku jest to ramka tabeli, ale
moze to byc cala tabela lub div czy cokolwiek innego w czym da sie dopisac id i style.
Na jednej stronie mozesz umiescic jednoczesnie kilka takich blokow i czy maja
one zostac przy starcie strony uwidocznione czy nie decydujesz wpisem :
  1. style="display:none" lub style="display:yess"

Wywolanie jest banalnie proste :
  1. <a href="java script:ShowOrHide('opis02')">Lista folderów</a>

Jesli potrzebujesz jednoczesnie wyswietlic lub schowac lub zrobic to naprzemiennie
to podajesz wiecej parametrow :
  1. <a href="java script:ShowOrHide('opis02','opis03','opisN')">Lista folderów</a>


Powodzonka

Ten post edytował CyberDuck_ 10.09.2009, 14:13:00
Go to the top of the page
+Quote Post

Posty w temacie


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: 4.04.2026 - 23:32