Autor Zpráva
FAtbluNT
Profil *
Dobrý den. Napsal jsem si jednoduchý skript na posouvání CSS objektu po stránce. Bohužel mi zlobí v Netscapu (a tím pádem nejspíš i ve Firefoxu).
Tady je ta klíčová část (reakce na událost) :

document.onmousemove = function(e){

if(navigator.appName.indexOf('Netscape') != -1 || navigator.appName.indexOf('Firefox') != -1){
if(posouvat == true){
xokno = xokno+(e.pageX-xcursor);
yokno = yokno+(e.pageY-ycursor);
document.getElementById('okno').style.left = (xokno)+'px';
document.getElementById('okno').style.top = (yokno)+'px';
}
document.getElementById('zahlavi').innerHTML = 'posun x:' + (e.pageX-xcursor) + '; posun y:' + (e.pageY-ycursor) + ' - - - pozice:' + xcursor + '::' + ycursor;

xcursor = e.pageX;
ycursor = e.pageY;
}else{
if(posouvat == true){
xokno = xokno+(window.event.pageX-xcursor);
yokno = yokno+(window.event.pageY-ycursor);
document.getElementById('okno').style.left = (xokno)+'px';
document.getElementById('okno').style.top = (yokno)+'px';
}
document.getElementById('zahlavi').innerHTML = 'posun x:' + (e.pageX-xcursor) + '; posun y:' + (e.pageY-ycursor) + ' - - - pozice:' + xcursor + '::' + ycursor;

xcursor = window.event.pageX;
ycursor = window.event.pageY;
}
ddmousemoved = true;
}


Problém je v tom, že v Netscapu mi okno stále ujíždělo mnohem rychleji, než jsem posouval myší kurzor.. nakonec jsem zjistil (metodou innerHTML viditelnou výše) že vždy, když okno v Netscapu přesouvám, dochází z mě neznámého důvodu k posunu hodnot pozice kurzoru, a to k posunu velice odlišnému od skutečné hodnoty - jakmile však okno "pustím" (tím vynuluji hodnotu 'posouvat'), hned první onmousemove uváděné údaje v záhlaví okna "opraví" na reálnou hodnotu...
Už jste se někdo s nečím podobným setkal?
FAtbluNT
Profil *
Tak jsem zjistil, že to dělá jenom Netscape 7.1 (pracuju jenom na linuxu).
Netscape 8 už tyhle problémy nemá.
peta
Profil
neni stranka neni rada. ten script zkoumat nebudu
google: javascript cross browser mouse move
<bod style="position:relative">
ale, protoze nevim, jak vypada stranka, tak tezko rici
... tip: drag drop tree (asi 6 radku niz, bez problemu mi to jede)
tez nechapu, proc by se pri posunu mel text neustale prekreslovat?
onmousedown= 'x.innerHTML= ...';
onmouseup = 'x.innerHTML=""';
FAtbluNT
Profil *
Tu metodu innerHTML jsem použil proto, abych si vypsal koordináty kurzoru a okna -
díky nim jsem zjistil, proč okno ujíždí.

Ten skript je opravdu jednoduchý - je z něj doufám jasně vidět, že proměnné xcursor a ycursor jsou zapisovány jen a jen funkcí vracející pozici kurzoru a protože výpis v záhlaví okna
(tj. výpis mimo jiné přímo proměnných xcursor a ycursor)
ukazuje (jak jsem již zmínil) naprosto jiné souřadnice, než odpovídají skutečné pozici kurzoru, usoudil jsem, že problém je v prohlížeči.

Mimo Netscapu 7 jsem zatím nic na jiných prohlížečích nepozoroval...
To drag&drop menu je perfektní (proti kurzoru je v něm jen konstantní posun), asi se podívám, jak to funguje.
Toto téma je uzamčeno. Odpověď nelze zaslat.