Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS] warstwy
Ace
post 24.06.2004, 17:26:34
Post #1





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 9.08.2003
Skąd: Warszawa

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


witam, natknolem sie na problem zwiazany z warstwami i JS. Mianowicie,
  1. <div id="lay[0]" style="display: none; ">
  2. jakis text 1
  3. </div>
  4. <div id="lay[1]" style="display: none; ">
  5. jakis text 2
  6. </div>
  7. <div id="lay[2]" style="display: none; ">
  8. jakis text 3
  9. </div>
  10. <div id="lay[3]" style="display: none; ">
  11. jakis text 4
  12. </div>

na stronie mam taki kod...
mam 4 linki odwolujace sie do kazdego z tych elementow, tzn...
  1. <a href="#" onClick="pokaz(0); return false;">
  2. <a href="#" onClick="pokaz(1); return false;">
  3. <a href="#" onClick="pokaz(2); return false;">
  4. <a href="#" onClick="pokaz(3); return false;">


i funkcja pokaz()
Kod
function pokaz( co )
{
    el = document.getElementById( "lay[" + co + "]" );
    if (el.style.display == "block")
    {
  hideAll();
  el.style.display = "none";
    }
    else
    {
  el.style.display = "block";
    }
}


i wszystko jest ladnie, warstwy sie pokazuja, ale chce osiagnac taki efekt, ze klikajac na link, uaktywnia sie div o podanym id, a reszta sie chowa... probowalem uzyc funkcji


Kod
function hideAll()
{
    for( i=0; i<1000; i++ )
    {
  tmp = document.getElementById( "lay[" + i + "]" );
  tmp.style.display = "none";
    }
}


lub probowalem tez
Kod
function hideAll()
{
    while ( tmp = document.getElementById( lay ) )
    {
  tmp.style.display = "none";
    }
}


i glownie to chodzi mi o to, zeby jakis text dynamicznie sie zmienial, i wykombinowalem do tego warstwy. Js ucze sie od kilku dni, wiec prosze nie bijcie ;]

Ten post edytował Ace 25.06.2004, 11:59:52
Go to the top of the page
+Quote Post
Ślepiec
post 11.07.2004, 19:49:05
Post #2





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.04.2004
Skąd: Bydgoszcz

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


nie wiem czy jestem staroświecki ale ja wolę używać :
  1. document.getElementById(nazwa).style.visibility = 'visible' // jako pokaż...i ....
  2. document.getElementById(nazwa).style.visibility = 'hidden' // jako ukryj


po drugie :
po co return false - nie sądze że oto chodzi, ale nigdzie nie widzałem tej frazy w takim miejscu.

przejdzmy do sprawy głównej :
aby ukryć wszystkie użyj funkcji :
Kod
function wszystko() {
var max = 'liczba obiektów' /* myślę że używasz php czy czegoś takiego
więc w wal :
var max = <?php echo $max; ?>
*/

  for( i = 0; i < max; i++) {
   document.getElementById('nazwa'+i).style.visibility = 'hidden';
  }
};


dopiero po tym wklep funkcję odnośnie pokazywania jednego div'a, lub połącz je, np tak:
Kod
function pokaz(id) {
var max = <?php echo $max; ?>;
for( i = 0; i < max; i++) {
  if ( i != id ) {
     document.getElementById('nazwa'+i).style.visibility = 'hidden';
  }
  else {
    document.getElementById('nazwa'+i).style.visibility = 'visible';
  }
}
}


--------------------
strona powinna być: przejżysta, czysta, lekka, funkcjonalna...........na końcu cenię wygląd...

only scripts...
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 22:13