webForumDet fria alternativet

Markering av vald länk

3 svar · 185 visningar · startad av FredrikT

FredrikTMedlem sedan jan. 20025 inlägg
#1

Hej, jag har en meny som består av vanliga html-länkar. Jag skulla vilja att den länk som är "aktiv" visas med tex. en liten bild framför eller i annan färg. Alltså så att man vet vilken sida man är inne på. Några förslag?

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Detta script är kanske lite overkill, men jag satt och lekte med det och det fungerar lika bra på en meny (med länkar på en rad) och länkar i en flytande text. I lagret "linkmark" kan du givetvis lägga in något mer spännande än ett ">", och då bara justera getxpos(lobj)-8 och getxpos(lobj)-12 (8 och 12) så att det stämmer.

<div id="linkmark" style="position:absolute;visibility:hidden;color:red;">></div>
<script language="JavaScript" type="text/javascript">
function mark(lobj){
	moveLayerAbs('linkmark',getxpos(lobj)-8,getxpos(lobj)-12);
	showLayer('linkmark');
	return true;
}
function getxpos(obj){
	var ret=0;
	if (document.getElementById &#0124;&#0124; document.all){
		while (obj.offsetParent) { ret += obj.offsetLeft; obj = obj.offsetParent; }
	}
	return (document.layers)?obj.x:ret;
}
function getypos(obj){
	var ret=0;
	if (document.getElementById &#0124;&#0124; document.all){
		while (obj.offsetParent) { ret += obj.offsetTop; obj = obj.offsetParent; }
	}
	return (document.layers)?obj.y:ret;
}
function moveLayerAbs(Id,x,y){
	if (document.all){
		if (x) document.all[Id].style.left = x;
		if (y) document.all[Id].style.top = y;
	} else if (document.layers){
		if (x) document.layers[Id].left = x;
		if (y) document.layers[Id].top = y;
	} else if (document.getElementById){
		if (x) document.getElementById(Id).style.left = x+'px';
		if (y) document.getElementById(Id).style.top = y+'px';
	}
}
function showLayer(Id){
	if (document.all) {
		document.all[Id].style.visibility = "visible";
	} else if (document.layers){
		document.layers[Id].visibility = "show";
	} else if (document.getElementById){
		document.getElementById(Id).style.visibility = "visible";
	}
}
</script>

För att kunna markera en länk lägger du in onClick="return mark(this);" i <a>-taggen. Detta är givetvis mest intressant tillsammans med ett target på länken så att sidan med länken ligger kvar och länken laddas i ett annat fönster/frame.

------------------
/ J

FredrikTMedlem sedan jan. 20025 inlägg
#3

Jag får inte det att funka som det ska, oavsett vilken länk jag klickar på så ligger > kvar på samma ställe

JojoxxMedlem sedan juni 20004 308 inlägg
#4

Ok, jag har läst en del om offsetParent och tydligen så är den funktionen lite buggig i olika webbläsare. Men gäller detta bara en meny kanske något av dessa exempel kan vara intressant (meny med bildväxling).

------------------
/ J

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