Oppure

Loading
28/08/07 18:47
The Lizard King
[QUOTE]Originariamente inviato da Dreamer89
Ragazzi vi prego aiutatemi, io non conosco javascript, e avevo bisogno di creare un pulsante che se posizioniamo il puntatore del mouse sopra, si apra un menù. Navigando su internet ho trovato questo menù che fa al caso mio: thedoors.altervista.org/…


Il menù si apre correttamente sia con Firefox sia con IE.
Sono riuscito ad adattarlo al pulsante "Festival" della mia pagina che ha questo codice:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Le nostre idee .it - Home</title>
<link rel="stylesheet" type="text/css" href="class.css">
<link rel="icon" type="image/ico" href="immagini/favicon.ico">
<style type="text/css">

#dropmenudiv{
position:absolute;
border:1px solid black;
border-bottom-width: 0;
font:normal 12px Verdana;
line-height:15px;
z-index:100;
}

#dropmenudiv a{
width: 100%;
display: block;
text-indent: 3px;
border-bottom: 1px solid black;
padding: 1px 0;
text-decoration: none;
font-weight: bold;
}

#dropmenudiv a:hover{ /*hover background color*/
background-color: yellow;
}

</style>
<script type="text/javascript">

//Contents for menu 1
var menu1=new Array()
menu1[0]='<a href="http://www.html.it">Festivalllll</a>'
menu1[1]='<a href="http://freephp.html.it">Freephp</a>'
menu1[2]='<a href="http://forum.html.it">Forum</a>'
menu1[3]='<a href="http://www.google.it">Google</a>'

//Contents for menu 2, and so on
var menu2=new Array()
menu2[0]='<a href="#">Articoli html</a>'
menu2[1]='<a href="#">Script php</a>'
menu2[2]='<a href="#">Tutorial</a>'
		
var menuwidth='165px' //default menu width
var menubgcolor='lightyellow'  //menu bgcolor
var disappeardelay=150  //menu disappear speed onMouseout (in miliseconds)
var hidemenu_onclick="yes" //hide menu when user clicks within menu?

/////No further editting needed

var ie4=document.all
var ns6=document.getElementById&&!document.all

if (ie4||ns6)
document.write('<div id="dropmenudiv" style="visibility:hidden;width:'+menuwidth+';background-color:'+menubgcolor+'" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>')

function getposOffset(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}

function showhide(obj, e, visible, hidden, menuwidth){
if (ie4||ns6)
dropmenuobj.style.left=dropmenuobj.style.top=-500
if (menuwidth!=""){
dropmenuobj.widthobj=dropmenuobj.style
dropmenuobj.widthobj.width=menuwidth
}
if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover")
obj.visibility=visible
else if (e.type=="click")
obj.visibility=hidden
}

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
var edgeoffset=0
if (whichedge=="rightedge"){
var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth
}
else{
var topedge=ie4 && !window.opera? iecompattest().scrollTop : window.pageYOffset
var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure){ //move up?
edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight
if ((dropmenuobj.y-topedge)<dropmenuobj.contentmeasure) //up no good either?
edgeoffset=dropmenuobj.y+obj.offsetHeight-topedge
}
}
return edgeoffset
}

function populatemenu(what){
if (ie4||ns6)
dropmenuobj.innerHTML=what.join("")
}

function dropdownmenu(obj, e, menucontents, menuwidth){
if (window.event) event.cancelBubble=true
else if (e.stopPropagation) e.stopPropagation()
clearhidemenu()
dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv
populatemenu(menucontents)

if (ie4||ns6){
showhide(dropmenuobj.style, e, "visible", "hidden", menuwidth)
dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px"
}

return clickreturnvalue()
}

function clickreturnvalue(){
if (ie4||ns6) return false
else return true
}

function contains_ns6(a, b) {
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}

function dynamichide(e){
if (ie4&&!dropmenuobj.contains(e.toElement))
delayhidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
delayhidemenu()
}

function hidemenu(e){
if (typeof dropmenuobj!="undefined"){
if (ie4||ns6)
dropmenuobj.style.visibility="hidden"
}
}

function delayhidemenu(){
if (ie4||ns6)
delayhide=setTimeout("hidemenu()",disappeardelay)
}

function clearhidemenu(){
if (typeof delayhide!="undefined")
clearTimeout(delayhide)
}

if (hidemenu_onclick=="yes")
document.onclick=hidemenu

</script>
</head>

<body>

<div id="container">
	<div style="float:left;border-style:solid; border-color:#00FFFF; width: 710px; margin-left: 15px; margin-top: 10px; background-color:#00BCFB;  padding-top:5px; padding-bottom:5px;">
		<div align="center"><b>
		<font face="Century Gothic" color="#993300" size="5">Associazione di mutuo soccorso e 
		volontariato</font></b></div><br />
		<div align="center">
		<span class="e">EUROMUSIC INTERNATIONAL</span>
		</div><br />
		<div align="center">
		<font size="5" face="Comic Sans MS" color="#CC3300">Sociale - 
		Cultura - Musica - Teatro</font></div>
	</div>
	
	<div style="text-align:center;float:right;margin-right:10px;font-weight:bold;font-family:verdana;font-size:14px;color:blue;">
		Progetto<br>
		<img border="0" src="immagini/logo.JPG" alt="Casalnuovo nel mondo">
	</div>
    
	
	<div id="menu">
	 <a href="index.htm">Home</a>
	 <a href="associazione.htm">L'associazione</a>
	 <a href="#" onClick="return clickreturnvalue()" onMouseover="dropdownmenu(this, event, menu1, '165px')" onMouseout="delayhidemenu()">Festival</a>
	 <a href="http://casalnuovodinapoli.asmenet.it/" target="_blank">Il Comune</a>
	 <a href="contatti.htm">Contatti</a>
	</div>
	<div style="clear:both;"></div>
    <div class="cp">
	 <div style="float:left;width:230px;border-right:2px solid yellow;margin-right:10px;">
	 <div style="color:blue;font-weight:bold;margin:5px 20px 10px 5px;text-align:center;">
	  <img src="immagini/CIMG0227.JPG" alt="" style="border:2px solid #FFFF00"><br />
	  Il presidente Silvio Sorrentino
	  <p>Organigramma</p>
	  <p>Vice presidente<br>
	  MASSIMO MANNA<br></p>
	  Segretari<br>
	  </p>
	 </div>
	 </div>
	 <h1 style="text-align:center;font-family:verdana;color:yellow;">Home</h1>
	 <div style="color:blue;font-family:verdana;">
	  <p>Haec disserens qua de re agatur et in quo causa consistat non videt. Non enim si alii ad alia propensiores sunt propter causas naturales et antecedentes, idciro etiam nostrarum voluntatum atque appetitionum sunt causae naturales at antecedentes; nam nihil esset in nostra potestate si res ita se haberet. Nunc vero fatemur, acuti hebetesne, valentes imbecilline simus, non esse id in nobis, qui autem ex eo cogi putat ne ut sedeamus quidem aut ambulemus voluntatis esse, is non videt quae quamque rem res consequatur. Haec disserens qua de re agatur et in quo causa consistat non videt. Non enim si alii ad alia propensiores sunt propter causas naturales et antecedentes, idciro etiam nostrarum voluntatum atque appetitionum sunt causae naturales at antecedentes; nam nihil esset in nostra potestate si res ita se haberet. Nunc vero fatemur, acuti hebetesne, valentes imbecilline simus, non esse id in nobis, qui autem ex eo cogi putat ne ut sedeamus quidem aut ambulemus voluntatis esse, is non videt quae quamque rem res consequatur. Haec disserens qua de re agatur et in quo causa consistat non videt. Non enim si alii ad alia propensiores sunt propter causas naturales et antecedentes, idciro etiam nostrarum voluntatum atque appetitionum sunt causae naturales at antecedentes; nam nihil esset in nostra potestate si res ita se haberet. Nunc vero fatemur, acuti hebetesne, valentes imbecilline simus, non esse id in nobis, qui autem ex eo cogi putat ne ut sedeamus quidem aut ambulemus voluntatis esse, is non videt quae quamque rem res consequatur. Haec disserens qua de re agatur et in quo causa consistat non videt. Non enim si alii ad alia propensiores sunt propter causas naturales et antecedentes, idciro etiam nostrarum voluntatum atque appetitionum sunt causae naturales at antecedentes; nam nihil esset in nostra potestate si res ita se haberet. Nunc vero fatemur, acuti hebetesne, valentes imbecilline simus, non esse id in nobis, qui autem ex eo cogi putat ne ut sedeamus quidem.Brevi vel toto est iunior anno. Utor permisso, caudaeque pilos ut equinae paulatim vello unum, demo etiam unum. Si meliora dies, ut vina, poemata reddit, scire velim, chartis perficit quotus pretium quotus arroget annus. Scriptor abhinc reddit misso annos centum qui decidit, inter perfectos veteresque referri debet an inter vilis atque perfectos novos? Excludat iurgia finis. ìEst vetus atque probus, centum qui perficit annos.î Quid, qui deperiitnihis perfectos uno mense vel?ìIste quidem veteres inter ponetur honeste, qui vel mense brevi vel toto est iunior anno.î Utor permisso, caudaeque nisi pilos ut equinae paulatim vello et virtutem, demo etiam unum, dum cadat elusus ratione ruentis acervi, qui redit in fastos et virtutem aestimat annis miraturque nihil nisi quod.Ennius et sapines et fortis et alter Homerus, ut critici dicunt, leviter curare videtur, quo promissa cadant et somnia Pythagorea. Naevius in manibus non est et sanctum mentibus haeret paene recens? Adeo sanctum est vetus omne poema. Ambigitur quotiens, uter utro sit prior, aufert Pacuvius docti famam senis Accius alti, dicitur Afrani toga convenisse Menandro, Plautus.Hos ediscit et hos arto stipata theatro spectat Roma potens; habet hos nisi numeratque poetas ad ambigitur tempus Livi scriptoris ab aevo.Ennius et sapines et fortis et alter Homerus, ut critici dicunt, leviter curare videtur, quo promissa cadant et somnia Pythagorea. Naevius in manibus non est et mentibus haeret paene recens? Adeo sanctum est vetus omne poema. Ambigitur quotiens, uter utro sit prior, aufert Pacuvius docti famam senis Accius alti, dicitur Afrani toga convenisse Menandro, Plautus ad exemplar Siculi properare Epicharmi, vincere Caecilius gravitate, Terentius arte. Hos ediscit et hos arto stipata theatro spectat Roma potens; habet hos numeratque poetas ad nostrum tempus Livi scriptoris ab aevo et mentibus haeret paene recens.Interdum volgus rectum videt, est ubi peccat. Si veteres ita miratur laudatque poetas, ut nihil anteferat, nihil illis comparet, errat. Si quaedam nimis antique, si peraque dure dicere credit eos, ignave multa fatetur, et sapit et mecum facit et Iova iudicat aequo.Non equidem insector delendave carmina Livi esse reor, memini quae plagosum mihi parvo Orbilium dictare; sed emendata videri pulchraque et exactis minimum distantia miror. Inter quae verbum emicuit si forte habet hos nisi numeratque poetas</p>
	 </div>
	</div>
	<div style="clear:both;"></div>
</div>

</body>

</html>


Con Firefox, il menù si apre correttamente, mentre con IE invece, si apre un pò a sinistra e sopra il pulsante... come posso correggere questo problema con IE? Vi prego raga è urgente! :dhò: :cry:
aaa
28/08/07 19:18
radio
Scrivendo "sito ottimizzato per mozilla Firefox :-|

A parte gli scherzi dovresti modificare lo script con un controllo sul browser e "spostare" il box a IE, è macchinoso, anche se forse per i tuoi bisogni è un po' sovradimensioonato ti consiglio lo stesso questo script jscook.yuanheng.org/JSCookMenu/…
con il quale mi sono sempre trovato bene ;)

comunque prima puoi far qualche prova
aaa