webForumDet fria alternativet

Lager vid musklick

JavaScript

13 svar · 272 visningar · startad av ConnyFox

Medlem sedan aug. 20011 087 inlägg
Frågan#1

Hur gör jag så att när jag klickar på en länk så kommer det upp ett lager med t.ex en form eller vad som helst i brevid länken? saken är den att jag ska ha många sådana länkar på olika ställen av sidan så jag tänkte att man kanske kunnde få lagret att komma upp brevid muspekaren eller något.

tack på förhand!

Medlem sedan dec. 20025 483 inlägg
#2

Så här kanske du skulle kunna göra:

<script type="text/javascript">
<!--

function showHide(e, c){
	var elm = document.getElementById(e);
	var oLft = c.offsetLeft;
	var oTp = c.offsetTop;

	elm.style.left = oLft + c.offsetWidth + "px";
	elm.style.top = oTp + "px";
	elm.style.visibility = (elm.style.visibility=="hidden")?"visible":"hidden";
};

//-->
</script>

<body>

<a href="javascript:void(0)" onclick="showHide('lager', this)">Foo</a>
<div id="lager" style="visibility:hidden; width:200px; background:#eef; position:absolute">content</div>

</body>

:)

Medlem sedan aug. 20011 087 inlägg
#3

Det funkar på det viset att ett lager visas och tas bort men det kommer inte vid muspekaren som jag ville ha det utan där man lägger skälva div-taggen. jag vill ha lagret flytandes över allt annat där man klickar på länken. någon som vet hur man löser?

Medlem sedan dec. 20025 483 inlägg
#4

Nu då:

<script type="text/javascript">
<!--

function showHide(i, e){
	var oLeft = e.clientX;
	var oTop = e.clientY;
	var elm = document.getElementById(i);

	elm.style.left = oLeft + "px";
	elm.style.top = oTop + "px";
	elm.style.visibility = (elm.style.visibility=="hidden")?"visible":"hidden";
};

//-->
</script>

<body>

<a href="javascript:void(0)" onclick="showHide('lager', event)">Foo</a>
<div id="lager" style="visibility:hidden; width:200px; background:#eef; position:absolute">content</div>

</body>

:)

Medlem sedan aug. 20011 087 inlägg
#5

hmm nu e d lite mer rätt hehe nu hamnar det flytandes över allt annat som det skall men inte änns i närheten av där jag klickar :D

Medlem sedan dec. 20025 483 inlägg
#6

Vilken webbläsare använder du?

:)

Medlem sedan aug. 20011 087 inlägg
#7

ie 6.0 med crazy browser

Medlem sedan aug. 20011 087 inlägg
#8

men d e samma resultat i vanliga ie 6.0

Medlem sedan dec. 20025 483 inlägg
#9

För mig fungerar det fint i IE6. Kan du visa den kod du använder?

:)

Medlem sedan aug. 20011 087 inlägg
#10

Ok detta likker i head

<SCRIPT LANGUAGE="JavaScript" SRC="HideShow.js"></SCRIPT>

<script type="text/javascript">
<!--

function showHide(i, e){
var oLeft = e.clientX;
var oTop = e.clientY;
var elm = document.getElementById(i);

elm.style.left = oLeft + "px";
elm.style.top = oTop + "px";
elm.style.visibility = (elm.style.visibility=="hidden")?"visible":"hidden";

};

//-->
</script>

och detta ligger långt ner på sidan
<div id="lager" style="visibility:hidden; width:200px; background:#eef; position:absolute">content</div>

<a href="javascript:void(0)" onclick="showHide('lager', event)"><img src="bilder/utrop.gif" border="0"></a>

Medlem sedan aug. 20011 087 inlägg
#11

Ingen aning om varför det funkar för både dig och min polare men för mig funkar d inte alls som tänkt, diven hamnar långt upp på sidan istället för brevid bildlänken =/

Medlem sedan aug. 20011 087 inlägg
#12

Hmm det funkar när jag lägger det på en sida separat men inte i min andra kod då ballar det ur..

Medlem sedan dec. 20025 483 inlägg
#13

Nu skall det fungera:

var oLeft = e.clientX + document.body.scrollLeft;
var oTop = e.clientY + document.body.scrollTop;

Jag tror dock inte att detta fungerar i IE5. Isåfall skulle du behöva modifiera koden lite grann.

:)

Medlem sedan aug. 20011 087 inlägg
#14

Ja sanna mina ord det gjorde den oxå :D man tackar man tackar! finemang *bugar*

313 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
176 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)