|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2002
Città: Piacenza
Messaggi: 2022
|
[JavaScript & CSS] display:none & display:block su IE7 funziona, su FireFox no.... :(
Ciao ragas..... ecco il codice del mio script (riporto le tre sezioni importanti, anche se il css è su file esterno..):
codice: Codice:
<script type="text/javascript"> function ShowHide(id){ if(document.getElementById){ element=document.getElementById(id); if(element.style.display=="none"){ element.style.display="block"; } else{ element.style.display="none"; } } } </script> <style type="text/css"> .menuleft { font-family: Verdana, Arial, Helvetica, sans-serif; color: #000033; font-weight: bold; font-size: 12px; background-color: #FFFFFF; height: 25px; cursor: default; vertical-align: middle; text-align: center; } .menuleftexp { font-family: Verdana, Arial, Helvetica, sans-serif; color: #000000; font-weight: bold; font-size: 12px; background-color: #66CCFF; height: 25px; cursor: default; vertical-align: middle; text-align: center; } .trhide { display: none; } </style> <html> <table width="100%" border="0" cellspacing="2" cellpadding="0"> <tr> <td class="menuleft" onclick="ShowHide('menu1');">menu1</td> </tr> <tr class="trhide" id="menu1"> <td class="menuleftexp">sottomenu1</td> </tr> <tr> <td class="menuleft" onclick="ShowHide('menu2');">menu2</td> </tr> <tr class="trhide" id="menu2"> <td class="menuleftexp">sottomenu2</td> </tr> <tr> <td class="menuleft" onclick="ShowHide('menu3');">menu3</td> </tr> <tr class="trhide" id="menu3"> <td class="menuleftexp">sottomenu3</td> </tr> <tr> <td class="menuleft" onclick="ShowHide('menu4');">menu4</td> </tr> <tr class="trhide" id="menu4"> <td class="menuleftexp">sottomenu4</td> </tr> </table> </html> Allora, su IE7 funziona benone, anche se appena aperta la pagina (2 frames, il menù è nel frameleft...) al primo click non succede NULLA, dal secondo in poi il menù appare e scompare regolarmente ad ogni pressione... Questo tutte le volte che si clicca un menu diverso.. Come mai? Su Firefox invece ha comunque il problema del primo click che non fa nulla.. ma successivamente ad ogni apparizione e sparizione mi aumenta lo spazio vuoto con i menù che stanno sotto... In pratica è un menù a discesa messo in verticale, quando clicchi sul menu 1 gli altri si spostano in basso e appare il sottomenu del menu 1 tra il menu 1 e gli altri... Ad ogni sparizione i successivi menu non ritornano al loro posto iniziale, ma rimangono dove sono, e al click successivo si spostano più giù... dopo 10 cicli sono a metà pagina!!! Oltretutto anche la forma dei sottomenu che appaiono è sbagliata, tiene solo metà colonna.... non capisco! Help me, please!
__________________
My rig: CPU Intel Core i7 2600K 3.40GHz@4.50GHz vcore=def; @5.20GHz vcore=+0,25v ![]() |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Per il resto, non saprei ... dovrei verificare meglio. Su Firefox ci sono due problemi: i sottomenù non sono larghi al 100% e sono solo un blocchetto a sinistra. Inoltre sembra che si "mangi" dello spazio. Appena ho tempo cerco di capire il perché. Comunque se devi fare dei menù "espandibili" ti conviene usare le liste (<ul> <li>) o al massimo dei <div>.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Feb 2002
Città: Piacenza
Messaggi: 2022
|
Grazie 1000, sei stato molto chiaro, appena riesco provo a modificare la condizione ma in effetti dev'esser così...!
![]() Per il resto mi hanno detto che per alcuni browser (come FireFox) invece di "block" bisogna usare "table-row"... Ho provato, ed in effetti funziona con Firefox, ma poi non funziona più in Explorer!! ![]() Questo vuol dire che per forza devo fare un'altra condizione in cui se il browser è Firefox usa table-row, se è IE usa "block" ? Mammamia, perchè non si uniformano un pochino? Sapevo che c'erano differenze, ma queste mi sembrano abbastanza pesanti come differenze... ![]() Ti faccio sapere entro sera, grazie 1000!! ![]()
__________________
My rig: CPU Intel Core i7 2600K 3.40GHz@4.50GHz vcore=def; @5.20GHz vcore=+0,25v ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Motivo in più, come ho detto, per usare <div> o <ul>, comunque non delle celle di una tabella.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Feb 2002
Città: Piacenza
Messaggi: 2022
|
Eccomi, grazie al tuo consiglio ho risolto tutto per quanto riguarda IE!
E nel frattempo ho cercato di risolvere anche la differenza tra i 2 browser impostando un ulteriore if(): Codice:
<script type="text/javascript"> function ShowHide(id){ if (navigator.appName=="Microsoft Internet Explorer") { if(document.getElementById){ element=document.getElementById(id); if(element.style.display!="block"){ element.style.display="block"; } else{ element.style.display="none"; } } } if (navigator.appName=="Netscape") { if(document.getElementById){ element=document.getElementById(id); if(element.style.display!="table-row"){ element.style.display="table-row"; } else{ element.style.display="none"; } } } } </script> Cosa ne dici? Visto che mi serve per un'applicazione e non per un sito, anche il riconoscimento lo lascerei così, tanto curerò io l'installazione del browser e quindi non dovrebbe servire riconoscerne altri oltre a firefox e IE... Grazie ancora! ![]()
__________________
My rig: CPU Intel Core i7 2600K 3.40GHz@4.50GHz vcore=def; @5.20GHz vcore=+0,25v ![]() |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Feb 2002
Città: Piacenza
Messaggi: 2022
|
Quote:
![]()
__________________
My rig: CPU Intel Core i7 2600K 3.40GHz@4.50GHz vcore=def; @5.20GHz vcore=+0,25v ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:23.