layer menue, zu schnell :(

amintosh

Grünschnabel
hi leute =)
ich hab von einer site wo man javascripts bekommt mir ein script besorgt
ein menue was beim herrueberfahren ueber buttons darunter neue buttons anzeigt, kennt sicher jeder! :)

funktioniert alles super!

das problem ist nur, sobald ich die maus von dem button herrunter zieh, und auf den eigentlich layer will, um weitere links anzuklicken, verschwinden diese layer da sie ja nur da sind solange man die maus auf dem button hat!:

so sieht das dann bei einem link aus:
Code:
<a href="#.htm"   onmouseover="Popup('hmenue6');rollover('hauptmenue',6,1)" onmouseout="setPopupTimer('hmenue6');rollover('hauptmenue',6,0)"><img src="images/kontakt.gif" width="58" height="16" alt="Kontakt" border="0" name="hauptmenue6"></a>

und das muss man fuer die layer einfuegen:

Code:
					<script language="JavaScript1.2" type="text/javascript">makePopupLayer(50,0,'hmenue1');</script>
					<table border="0" cellpadding="0" cellspacing="0">
						<tr class="backgrau4">
							<td></td>
						</tr>
					</table>
					<table border="0" cellpadding="0" cellspacing="0">
						<tr class="backgrau4">
							<td>
								<table border="0" cellpadding="0" cellspacing="1" width="440">
									<tr class="backgrau1">
										<td align="center" height="15" width="110"  onmouseover="style.backgroundColor='#F4F8FF';style.cursor='hand'" onmouseout="style.backgroundColor='#ECF2FF';"><a href="profil.html" target="content_rj" class="hauptmenue">Über uns</a></td>
										<td align="center" height="15" width="110"  onmouseover="style.backgroundColor='#F4F8FF';style.cursor='hand'" onmouseout="style.backgroundColor='#ECF2FF';"><a href="anfaenge.html" target="content_rj" class="hauptmenue">Anfänge</a></td>
										<td align="center" height="15" width="110"  onmouseover="style.backgroundColor='#F4F8FF';style.cursor='hand'" onmouseout="style.backgroundColor='#ECF2FF';"><a href="ansprechpartner.html" target="content_rj" class="hauptmenue">Ansprechpartner</a></td>
										<td align="center" height="15" width="110"  onmouseover="style.backgroundColor='#F4F8FF';style.cursor='hand'" onmouseout="style.backgroundColor='#ECF2FF';"><a href="impressum.html" target="content_rj" class="hauptmenue">Impressum</a></td>
									</tr>
								</table>
							</td>
						</tr>
					</table>
					<script language="JavaScript1.2" type="text/javascript">
		<!-- 
		if (document.layers) { 
		document.writeln('</LAYER>'); 
		} else { 
			document.writeln('</DIV>'); 
		}
		//-->
	</script>



ich brauche nun eure hilfe, da ich mich nicht so extrem gut mit javascript auskenne wollte ich wissen wie ich es machen kann, das diese layer laenger dableiben so das man obwohl man den zeiger vom button hat "in ruhe" auf die weiteren links (in dem fall layer) gehen kann, ohne das sie gleich wieder verschwinden wenn ich die maus von dem button nehm:

ich poste hier einfach mal das script:




Code:
dhtmlPopped = false;
var PopupTimer;
var lastPopup;

function Popup(PopupName) 
{
	if (loaded) {
		if (lastPopup) {
			closePopup(lastPopup);
		}
		if (document.layers) { 
			thePopup = document.layers[PopupName]; 
		} else if (document.all) { 
			thePopup = document.all.tags("DIV")[PopupName].style; 
		} else if (document.getElementById) {
			thePopup = document.getElementById(''+PopupName+'').style;
		}	
		thePopup.visibility = 'visible';
		dhtmlPopped = true;
		lastPopup = PopupName;
	}
}

function closePopup(PopupName) 
{
	if (loaded) {
		if (document.layers) { 
			thePopup = document.layers[PopupName]; 
		} else if (document.all) { 
			thePopup = document.all.tags("DIV")[PopupName].style; 
		} else if (document.getElementById) {
			thePopup = document.getElementById(''+PopupName+'').style;
		}	
	
		thePopup.visibility = 'hidden';
		dhtmlPopped = false;
	}
}

function setPopupTimer(PopupName) 
{
	if (loaded) {
		PopupTimer = setTimeout('closePopup("' + PopupName + '")',10);
	}
}

function makePopupLayer(layertop,layerleft,layername) 
{
	if (document.layers) { 
		document.writeln('<LAYER NAME="' + layername + '" TOP=' + layertop + ' LEFT=' + layerleft + '  VISIBILITY="hidden" ONMOUSEOVER="clearTimeout(PopupTimer)" ONMOUSEOUT=setPopupTimer("' + layername + '");>'); 
	} else if (document.all) { 
		document.writeln('<DIV ID="' + layername + '" STYLE="position:absolute; top:' + layertop + '; left: ' + layerleft + '; z-index:10; visibility:hidden;" ONMOUSEOVER="clearTimeout(PopupTimer);" ONMOUSEOUT=setPopupTimer("' + layername + '");>'); 
	} else if (document.getElementById) { 
		document.writeln('<DIV NAME="' + layername + '" ID="' + layername + '" STYLE="position:absolute; top:' + layertop + '; left: ' + layerleft + '; z-index:10; visibility:hidden;" ONMOUSEOVER="clearTimeout(PopupTimer);" ONMOUSEOUT=setPopupTimer("' + layername + '");>'); 
	}
}

function closePopupLayer() 
{
	if (document.layers) { 
		document.writeln('</LAYER>'); 
	} else if (document.getElementById){ 
		document.writeln('</DIV>'); 
	} else if (document.all){ 
		document.writeln('</DIV>'); 
	}
}

so, ich hoffe ihr koennt mir weiterhelfen! :p

hui ich glaub das is das laengste was ich jemals gepostet hab :-)

:D

eXecUTe
 
aah :) sorry bin etwas blind, habs schon gefunden!

Code:
function setPopupTimer(PopupName) 
{
	if (loaded) {
		PopupTimer = setTimeout('closePopup("' + PopupName + '")',10 );
	}
}

thema kann geclosed/gelöscht werden! :-)

mfg

eXecUTe
 
:)
noch n tipp, der dir selbst etwas bringt:
ich habe es auch lernen müssen, du solltest jede zeile die du schreibst kommentieren. dabei ist nicht so wichtig WAS du machst, sondern WARUM!
:-)
mfg horusab
 
Original geschrieben von amintosh
sorry ^^ ich dachte ihr seid eher verwirrt wenn ich das net ausfuehrlich erklaer/poste!

sorry nochmal! :)
Hallo,

lieber ausführlichen Code als gar keinen posten :) Wenns aber so viel wird, hast du die Möglichkeit den Code als Attachment (zb. txt Datei) anzuhängen. Hat den Vorteil das man dann auch sofort sehen kann was nicht geht ...

bye
 

Neue Beiträge

Zurück