Avatar billede jgp Nybegynder
13. marts 2002 - 09:23 Der er 4 kommentarer og
1 løsning

Hakker i forbindelse med flytning af iframe

På en html side har jeg en iframe, jeg vil gerne have når når man trykker og holder musen nede på denne iframe, så skal man kunne "drag & drop" den.

Jeg har lavet følgende script, så delvis virker. Iframen hakker en del når den bliver flyttet, og det er ligesom den kommer ud af sync. (flytter mere end hvad meningen er alt efter hvor lange man flytter rundt på iframen)

Scriptet ser sådan her ud:
var dragapproved=false
var z=parent.top.document.all['overDiv']
var x,y,temp1,temp2

function move(e) {
  if (dragapproved) {
    z.style.left=temp1+event.clientX-x
    z.style.top=temp2+event.clientY-y;
  }
}
function drags(e) {
    dragapproved=true
    temp1=parseInt(z.style.left+0)
    temp2=parseInt(z.style.top+0)
    x=event.clientX
    y=event.clientY
}
document.onmousedown=drags
document.onmouseup=new Function("dragapproved=false")
document.onmousemove=move
Avatar billede jakoba Nybegynder
13. marts 2002 - 09:41 #1
Dit hakkeri kommer af at en iframe er indlejret som en del af siden, så hvergang du flytter den en lille smule skal hele sidelayoutet beregnes forfra.
Det kræver mere cpukraft en computeren kan følge med til og så 'hakker' det.

Det vil virke bedre hvis du laver det som et lag der ligger 'over' siden. det kræver ikke helt så meget ( men stadig nok til at det kan hakke en smule hvis laget er stort.

mvh JakobA
Avatar billede jgp Nybegynder
13. marts 2002 - 09:53 #2
jakoba: tak for svaret

Problemet er at i den iframe jeg henter frem er en form, som hvis indhold er afhængi af hvor/hvad på siden der er blevet klikket.

Umidlbart har jeg svært ved at se hvordan det skal kunne lade sig gøre via et lag, har du ellers nogle gode ideer som kan bruges som alternetiv?
Avatar billede jakoba Nybegynder
13. marts 2002 - 09:56 #3
desværre
Avatar billede jgp Nybegynder
13. marts 2002 - 10:09 #4
jakoba: hvis du svare, så får du point'ne.

Jeg har valgt at lave 4 knapper for op, ned, left, right istedet. det er ikke så lækkert, men det ser bedre ud.
Avatar billede jgp Nybegynder
13. marts 2002 - 10:57 #5
Det lykkes jørgen'me:

var dragapproved=false;
var x,y

function move() {
  if (dragapproved) {
    window.moveBy(event.clientX-x, event.clientY-y);
  }
}
function drags() {
  dragapproved=true;
  x=event.clientX;
  y=event.clientY;
}
document.onmousedown=drags
document.onmouseup=new Function("dragapproved=false")
document.onmousemove=move
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