RiriMedlem sedan dec. 2000182 inlägg Nu har jag följande funktion som visar aktuellt lager och flyttar det till en fast position:
<SCRIPT LANGUAGE="JavaScript">
function ShowHideLayer(namn,varde,w,h)
{
if (document.all) //Explorer
{
document.all[namn].style.visibility=varde; //Synlighet
document.all[namn].style.pixelLeft=w; //Från vänster
document.all[namn].style.pixelTop=h; //Från höger
}
else if (document.layers) //Netscape
{
document.layers[namn].visibility=varde; //Synlighet
document.layers[namn].left = w; //Från vänster
document.layers[namn].top = h; //Från höger
}
}
//-->
</SCRIPT>
Skulle dock vilja ha det så att dess position följer pekaren. Hur f*n gör jag? Får det inta att funka... :(
------------------
DÖDEN ÄR LIVET - FAST TVÄRTOM
richardhallgren@usa.net
JohnsenMedlem sedan juli 2000836 inlägg Du får starta en funktion, när musen rör sig, som kollar var musen finns och som sätter lagrets top och left efter det.
<script language="JavaScript"><!--
if(document.layers) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = mouseMove
function mouseMove(e) {
var x = (document.layers)? e.pageX : event.x+document.body.scrollLeft
var y = (document.layers)? e.pageY : event.y+document.body.scrollTop
if(document.layers){ //Netscape
document.layers["namn"].top=y;
document.layers["namn"].left=x;
}
else{ //Explorer
document.all("namn").style.top=y;
document.all("namn").style.left=x;
}
}
//-->
</script>
------------------
Eskimåer har över 40 ord för snö, men bara 3 för bottenlån med rörlig ränta.
HugoMedlem sedan jan. 2001219 inlägg Kan man få igång den koden i mozilla?
JojoxxMedlem sedan juni 20004 308 inlägg <script type="text/javascript"><!--
function mouseMove(e) {
var x = (document.all)? event.x+document.body.scrollLeft : e.pageX;
var y = (document.all)? event.y+document.body.scrollTop : e.pageY;
if(document.getElementById){
document.getElementById("namn").style.top=y; document.getElementById("namn").style.left=x;
}
else if(document.layers){
document.layers["namn"].top=y; document.layers["namn"].left=x;
}
else if(document.all){
document.all("namn").style.top=y; document.all("namn").style.left=x;
}
}
if(document.layers) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = mouseMove
//-->
</script>
HugoMedlem sedan jan. 2001219 inlägg Dom här två raderna sänker hela scriptet för mig i Firefox.
var x = (document.all)? event.x+document.body.scrollLeft : e.pageX;
var y = (document.all)? event.y+document.body.scrollTop : e.pageY;
JojoxxMedlem sedan juni 20004 308 inlägg Funkar kanon för mig i Firefox 0.8
HugoMedlem sedan jan. 2001219 inlägg Då har jag väl klantat till det någon annanstans, kan jag få html-koden också inklusive lagret som ska föja med pekaren?
JojoxxMedlem sedan juni 20004 308 inlägg Hittade något som skulle kunna ställa till problemet. Validerar du dokumentet mot xhtml måste man ange enhet ("px" i detta fall). Hade glömt det i första exemplet.
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">
<head>
<title>...</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<script type="text/javascript"><!--
function mouseMove(e) {
var x = (document.all)? event.x+document.body.scrollLeft : e.pageX;
var y = (document.all)? event.y+document.body.scrollTop : e.pageY;
if(document.getElementById){
document.getElementById("namn").style.top=y+"px"; document.getElementById("namn").style.left=x+"px";
}
else if(document.layers){
document.layers["namn"].top=y; document.layers["namn"].left=x;
}
else if(document.all){
document.all("namn").style.top=y; document.all("namn").style.left=x;
}
}
if(document.layers) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = mouseMove
//-->
</script>
<div id="namn" style="position:absolute;">Ett lager</div>
</body>
</html>
HugoMedlem sedan jan. 2001219 inlägg Nu funkar det fint, men....
I ett annat projekt vill jag kunna ploppa upp en ruta vid muspekaren när man håller över en bild, hur gör jag för att anropa scriptet via en OnMouseOver()
Det räcker om det hämtar positionen en gång och sätter rutan där.
Jag har försökt att modifiera scriptet men blir inte riktigt klok på denna rad:
if(document.layers) document.captureEvents(Event.MOUSEMOVE);
Samt (e) i funktionsanropet, vad gör dom egentligen?
JojoxxMedlem sedan juni 20004 308 inlägg
Hugo skrev:
Jag har försökt att modifiera scriptet men blir inte riktigt klok på denna rad:
if(document.layers) document.captureEvents(Event.MOUSEMOVE);
Den är bara till för Netscape 4.x och talar om att vi vill avlyssna just eventet mousemove - när man flyttar musmarkören.
Hugo skrev:
Samt (e) i funktionsanropet, vad gör dom egentligen?
e namnger objektet som används för att lagra data om eventet (i detta fall var muspekaren är). I Internet Explorer är det alltid "event" min i Mozilla-baserade webbläsare får du alltså namnge det efter tycke och smak.
HugoMedlem sedan jan. 2001219 inlägg Då borde jag väl kunna anropa funktionen med:
<a href="" OnMouseOver="mouseMove">Dra här över</a>
Men jag får det inte att fungera.
JojoxxMedlem sedan juni 20004 308 inlägg Nej, det måste ske via eventet mousemove
HugoMedlem sedan jan. 2001219 inlägg Men om jag bara vill läsa av muspekarens position en gång högst upp i en funktion då?
JojoxxMedlem sedan juni 20004 308 inlägg Gör variablerna för mus-koodinaterna globala och läs av dem från din funktion:
<script type="text/javascript">
function showmouse(){
alert(xmouse+":"+ymouse);
}
var xmouse,ymouse;
function mouseMove(e) {
xmouse = (document.all)? event.x+document.body.scrollLeft : e.pageX;
ymouse = (document.all)? event.y+document.body.scrollTop : e.pageY;
}
if(document.layers) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = mouseMove
</script>
<a href="#" onclick="showmouse();">Visa koordinater</a>