Mam taki kodzik:
<?php
echo input
("x", "", "id='xzero'") . "<br>"; echo input
("y", "", "id='yzero'") . "<br>"; echo input
("x", "", "id='xkoniec'") . "<br>"; echo input
("y", "", "id='ykoniec'") . "<br>"; echo "<img style=\"cursor: move; position: absolute; margin:auto\" src='/kr/imgs/kubki/test.jpg' onmouseup='koniec(event)' onmousedown='zero(event)' >"; ?>
funkcja input wrzuca mi gotowego inputa typu text wiec traktujcie ja tylko po to zeby nie pisac za duzo
natomiast kod javyscript to:
function pozycjaMyszki(e) {
var pozX = 0;
var pozY = 0;
if (!e) var e = window.event;
if (e.pageX || e.pageY) {
pozX = e.pageX;
pozY = e.pageY;
} else if (e.clientX || e.clientY) {
pozX = e.clientX + document.body.scrollLeft;
pozY = e.clientY + document.body.scrollTop;
}
return [pozX,pozY]
}
function zero(e) {
xz = document.getElementById('xzero');
yz = document.getElementById('yzero');
xz.value = pozycjaMyszki(e)[0];
yz.value = pozycjaMyszki(e)[1];
}
function koniec(e) {
xk = document.getElementById('xkoniec');
yk = document.getElementById('ykoniec');
xk.value = pozycjaMyszki(e)[0];
yk.value = pozycjaMyszki(e)[1];
}
poprostu chce znac pozycje myszki przy kliknieciu i przy puszczeniu obrazka.
Problem polega na tym ze przy zlapaniu obrazka i przesunieciu kursora na dalsze odleglosci niz bodajze 3 pixele mozilla interpretuje to tak jakbym chcial przesunac obrazek;/ pytanie brzmi czy da sie to wylaczyc / ominac (IMG:
http://forum.php.pl/style_emoticons/default/questionmark.gif)
Dla tych co mają podobny problem ja rozwiązałem to tak:
var move = 0;
var fstime = 0;
function startMove(ev) {
move=1;
fstime=1;
click1x=ev.clientX;
click1y=ev.clientY;
if (!window.event) ev.preventDefault();
return false;
}
function stopMove(ev) {
move=0;
fstime=0;
}
function updMove(ev) {
if(move==1) {
if(fstime==1) {
diffx=ev.clientX-click1x;
diffy=ev.clientY-click1y;
}
else {
diffx=ev.clientX-beforex;
diffy=ev.clientY-beforey;
}
xk = document.getElementById('xkoniec');
yk = document.getElementById('ykoniec');
vx = xk.value
vy = yk.value
xk.value = vx - diffx;
yk.value = vy - diffy;
beforex=ev.clientX;
beforey=ev.clientY;
fstime=0;
}
if (!window.event) ev.preventDefault();
return false;
}