webForumDet fria alternativet

Muspekarens position

JavaScriptur Javascript

6 svar · 402 visningar · startad av henrik@vh.se

henrik@vh.seMedlem sedan sep. 200313 inlägg
#1

Jag har nedanstående javascript som funkar perfekt i Mac, men i Windows fungerar det bara sålänge jag inte rör scrollen.
Rullar jag ned en bit på sidan, visas lagret på samma position som tidigare, alltså... lagret följer med sidan när jag scrollar.

Nån som har något tips?

		var hori = (e.clientX + 20);
		var vert = (e.clientY - 6);
		document.getElementById(lager).style.visibility = "visible"; 
		document.getElementById(lager).style.left = hori;
		document.getElementById(lager).style.top = vert;
yohpopsMedlem sedan feb. 20011 198 inlägg
#2

Du får ta hänsyn till style.scrollTop och style.scrollLeft

henrik@vh.seMedlem sedan sep. 200313 inlägg
#3

Aha. Jag är i grunden rätt kass på javascript.
Du råkar inte ha något exempel liggandes?

nitro2k01Medlem sedan aug. 20039 342 inlägg
#4

Detta borde funka:

		var hori = e.clientX + 20 - (document.all?document.body.scrollLeft:0);
		var vert = e.clientY - 6 - (document.all?document.body.scrollTop:0);
		document.getElementById(lager).style.visibility = "visible"; 
		document.getElementById(lager).style.left = hori;
		document.getElementById(lager).style.top = vert;
oskobMedlem sedan maj 20021 558 inlägg
#5

Vad är det som ska hända egentligen?

henrik@vh.seMedlem sedan sep. 200313 inlägg
#6

Det handlar om lager som ska fungera ungefär som de gula notisarna som visas av ALT och TITLE, fast snyggare och snabbare. Dessa ska följa musens rörelser, men bara visas på vissa ställen.

Allt funkar, men problemet är att när de ska visas längre ner på en sida, och man scrollar, visas lagren på helt fel höjd.

Ska testa nitro2k01's tips nu.

henrik@vh.seMedlem sedan sep. 200313 inlägg
#7

Nej, felet består.
Såhär ser min kod ut nu:

		var hori = e.clientX + 20 - (document.all?document.body.scrollLeft:0);
		var vert = e.clientY - 6 - (document.all?document.body.scrollTop:0);		
		document.getElementById(lager).style.visibility = "visible"; 
		document.getElementById(lager).style.left = hori; 
		document.getElementById(lager).style.top = vert;
126 ms totalt · 3 externa anrop · v20260731065814-full.a2ca460b
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)