Autor Zpráva
Alastor_Kopal
Profil
Potřebuji kód na pohybování divem podle aktuální pozice myši.
googlil jsem i na diskusi jsem hledal ale všechny příklady nefungovaly
regy
Profil
Hloupost, že všechny příklady nefungovali. Jinak v jquery je na to funkce pageX a pageY.

Celý skript je pak třeba takto

<div id='info'></div>
<script>
$(document).ready(function(event){
  $("html").mousemove(function(event){
     var mleft = event.pageX;
     var mtop = event.pageY;
     $("#info").text(mleft+", "+mtop);
  });
});
</script>
Alastor_Kopal
Profil
<html>
<head>
<script>
$(document).ready(function(event){
  $("html").mousemove(function(event){
     var mleft = event.pageX;
     var mtop = event.pageY;
     $("#info").text(mleft+", "+mtop);
  });
});
</script>
</head>
<body>
<div id='info'>ahoj</div>
</body>
</html>

soubor index.html má přesně tento zdroják ale nefunguje

a zkoušel jsem experimentovat
<html>
<head>
<script>
$(document).ready(function(event){
  $("html").mousemove(function(event){
     var mleft = event.pageX;
     var mtop = event.pageY;
     var pristup = document.getElementById("info");
     pristup.style.top = mtop+"px";
  });
});
</script>
</head>
<body>
<div id="info" style="position: absolute; top: 100px; left: 100px;">ahoj</div>
</body>
</html>
a ani tohle - jsem bezradnej
Chamurappi
Profil
Reaguji na Alastora_Kopala:
document.body.onmousemove = function(e)
{
  var event = e || window.event;
  var mleft = event.pageX || event.clientX;
  var mtop = event.pageY || event.clientY;
  document.getElementById("info").style.top = mtop + "px";
}


Reaguji na regyho:
$(document).ready
Proč?
regy
Profil
Chamurappi:
No aby to mělo kam zapsat pozici ne?

Alastor_Kopal:
Musíš si stáhnout jquery (dával jsem link) na to, aby to fungovalo tak, jak jsem napsal já. Ale pokud s jquery nic jinýho dělat nebudeš, tak je asi lépe použít chamurappiho skript.
Alastor_Kopal
Profil
<html>
<head>
<script>
document.body.onmousemove = function(e)
{
  var event = e || window.event;
  var mleft = event.pageX || event.clientX;
  var mtop = event.pageY || event.clientY;
  document.getElementById("info").style.top = mtop + "px";
}
</script>
</head>
<body>
<div id="info" style="position: absolute; top: 100px; left: 100px;">ahoj</div>
</body>
</html>

tohle také nefunguje


Jak mám to udělat pomocí JQuery ?
1. uložit knihovnu do souboru .js
2. importovat do html souboru
3. do proměnné x dát funkci $.pagex
4. do proměnné y dát funkci $.pagey
5. zapsat novou pozici do style divu
?
Keeehi
Profil
Alastor_Kopal:
Když to pozpřeházíš, tak to bude fungovat ;-)
<html>
<head>
</head>
<body>
<div id="info" style="position: absolute; top: 100px; left: 100px;">ahoj</div>
<script>
document.body.onmousemove = function(e)
{
  var event = e || window.event;
  var mleft = event.pageX || event.clientX;
  var mtop = event.pageY || event.clientY;
  document.getElementById("info").style.top = mtop + "px";
  document.getElementById("info").style.left = mleft + "px";
}
</script>
</body>
</html>
V javascriptu má getElementById("info"). Element s id=info však ještě v té chvíli neexistuje.
Alastor_Kopal
Profil
diki moc funguje
Chamurappi
Profil
Reaguji na regyho:
No aby to mělo kam zapsat pozici ne?
Pokud je skript za tím <div>em, je jisté, že existuje. I kdyby byl před ním, bylo by pravděpodobné, že bude existovat v okamžiku, kdy dojde k pohybu myši.


Reaguji na Keeehiho:
Element s id=info však ještě v té chvíli neexistuje.
Hlavně při zpracování skriptu v <head> ještě neexistuje document.body.
Letax
Profil *
Prvek už se hýbe ale potřeboval bych zapisovat jeho pozici do cookies a z nich to zobrazovat.

<span OnMouseDown="presun(1);" onMouseUp="presun(0);" id="info">ahoj</span>

<script>
function presun(ano){
document.body.onmousemove = function(e)
{
if(ano == 1){
  var event = e || window.event;
  var mleft = event.pageX || event.clientX;
  var omleft = mleft-50;
  getCookie('left') = omleft;
}
else{}
}}
  document.getElementById("info").style.left = getCookie('left');
  </script>
  

(top jsem tam nedal schválně chci hýbat jen doprava a doleva)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0