Avatar billede mikkelk Nybegynder
07. maj 2005 - 22:27 Der er 9 kommentarer og
1 løsning

Positionering fra mus

ARG!
Har problemer med at få positioneret en tekstboks udfra musens placering - det skal helst virke i alle browsere og virker pt. ikke ordentligt i nogen af dem!!!
I IE 6 placeres den forkert hvis der er scrollet ned af siden...
I FireFox virker det bare ikke
Har ikke testet i opera.

Bruger følgende:
function show(ID, e) {
myXpos=(NS4||NS6)?e.pageX:event.x;
myYpos=(NS4||NS6)?e.pageY:event.y;
obj = document.getElementById(ID)
if (!document.all) {
obj.style.left = myXpos;
obj.style.top = myYpos;
}
else {
obj.style.left = Math.round(event.clientX - document.body.scrollLeft);
obj.style.top = Math.round(event.clientY - document.body.scrollTop);
}
obj.style.display = 'inline';
}
Avatar billede olebole Juniormester
08. maj 2005 - 02:00 #1
<ole>

Det kræver en hel del kode, så mon ikke bare du skulle bruge et færdigt script, der kan:
    http://www.bosrup.com/web/overlib/

/mvh
</bole>
Avatar billede mikkelk Nybegynder
08. maj 2005 - 10:30 #2
Ole du har før svaret sådan på spørgsmål jeg har stillet - årsagen til at jeg stiller spørgsmålet er ikke at jeg bare skal have et script der virker, men fordi jeg gerne vil lære mere om hvordan skidtet fungerer. Det er en smal sag at downloade færdige scripts rundt omkring, men det er ikke lige det jeg er ude efter.
Avatar billede mikkelk Nybegynder
08. maj 2005 - 10:34 #3
Det er fair nok for mig at det ikke nødvendigvis fungerer 100% optimalt, men hvis jeg kan få nogle hints til hvad der går galt i det jeg har postet her og hvorfor - så ville det være fedt.
Avatar billede mikkelk Nybegynder
08. maj 2005 - 11:01 #4
Jeg forstår f.eks. ikke hvorfor document.body.scrollLeft og scrollTop ikke virker...de er altid 0...
Avatar billede mikkelk Nybegynder
08. maj 2005 - 11:14 #5
Ah...fikset... document.documentElemet.scrollLeft for IE 6 :-)
Avatar billede mikkelk Nybegynder
08. maj 2005 - 11:36 #6
Ok, fandt selv en løsning vha. google og diverse svar her på exp, der i hvert tilfælde virker i Firefox, IE 5+ og opera:


ns4 = (document.layers)? true:false
all = (document.all)? true:false
DOM = (document.getElementById)?true:false;
opera = (window.navigator.userAgent.indexOf('Opera')!=-1)?true:false;
ns6 = (document.getElementById && !document.all)?true:false;

var getX = function(e) {
var X;
  if (e.x){X = e.x;}
  if (e.pageX){X = e.pageX;}
if( DOM && !opera && document.body && document.body.scrollLeft ) {
X += document.body.scrollLeft;
} else if( DOM && !opera &&  document.documentElement && document.documentElement.scrollLeft ){
X += document.documentElement.scrollLeft;
}
return X;
}
var getY = function(e){
var Y;
  if (e.y) {Y = e.y;}
  if (e.pageY) {Y = e.pageY;}
if( DOM && !opera && document.body && document.body.scrollTop ) {
Y += document.body.scrollTop;
} else if( DOM && !opera && document.documentElement && document.documentElement.scrollTop ){
Y += document.documentElement.scrollTop;
}
return Y;
}

function show(ID, e) {
obj = document.getElementById(ID)
obj.style.left = getX(e) + 'px';
obj.style.top = getY(e) + 'px';
obj.style.display = 'inline';
}
Avatar billede olebole Juniormester
08. maj 2005 - 14:40 #7
mikkelk >> Det er nok ikke uden grund, jeg har svaret sådan før  :)

Den ultimative måde at lære god JavaScripting på er ved at skille gode og velafprøvede scripts ad. Scripts, der er skrevet af dygtige og erfarne programmører.

Man kan ofte selv drible sig frem til noget, der virker - men det er ingen garanti for, man har fået lavet noget godt. Det er ikke usandsynligt, at det, man har fået lært, er noget, man ikke burde have lært  :)
Avatar billede mikkelk Nybegynder
08. maj 2005 - 14:56 #8
Nej, men nu er det sådan at f.eks. overlib som du henviser til er meget omfattende og en meget stor mundfuld at skille ad - og det har jeg ikke lige overskud til i denne omgang.
Men tak for dine indlæg. Vil du ha' lidt point så smid et svar, så deler vi.
Avatar billede olebole Juniormester
08. maj 2005 - 15:08 #9
Selv tak ... og ellers tak  :)
Avatar billede mikkelk Nybegynder
08. maj 2005 - 15:11 #10
Fair nok :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester