webForumDet fria alternativet

Hjälp med meny i två frames

2 svar · 263 visningar · startad av Obbelix

ObbelixMedlem sedan okt. 2002257 inlägg
#1

Håller på med en drop-down meny där "huvudvalen" ska ligga i en frame och undermenyerna ska komma upp i en annan frame.
Har kommit så långt att allt funkar som jag vill utom att när sidan där undermenyerna ska komma upp i är "nerscrollad" typ till hälften så funkar ju det inte med att sätta "top:5px;" på div:en.
Hur gör man för att få reda på hur mycket sidan är scrollad så man kan addera det med standardvärdet?

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Moderna webbläsare (Mozilla-baserade samt Opera) har stöd för CSS-attributet position: fixed, vilket gör att ett element ligger kvar på en plats hur dokumentet än skrollas.
Tyvärr använder de flesta en omodern webbläsare (Internet Explorer) vilket gör att man måste göra en special lösning för dem. Den består i att läsa av document.body.scrollTop och addera den till top-värdet om Internet Explorer används, samt att sätta position: fixed; om Internet Explorer används. Här är lite exempelkod.

<style type="text/css">
.menuclass	{position: fixed; left: 50px; top: 0px; background: green;}
</style>
<script type="text/javascript">
function fixMenu(){
	if (document.getElementById("menuid").style.position!="absolute")
		document.getElementById("menuid").style.position="absolute";

	document.getElementById("menuid").style.top = (document.body.scrollTop+5) + "px"

}

window.onload = function(){
	if (document.all && !window.opera){
		window.onscroll = fixMenu;
		fixMenu();
	}else{
		document.getElementById("menuid").style.position="fixed";
	}
}
</script>
ObbelixMedlem sedan okt. 2002257 inlägg
#3

Tackar!

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)