Avatar billede syncroniq Nybegynder
20. november 2006 - 12:51 Der er 4 kommentarer og
1 løsning

Div possition i Iframe editor

Hey,

Hvis jeg smider et DIV tag in med noget tekst, vil jeg gerne kunne flytte det med musen. Jeg er ved at lave en editor til noget tekst i en database, hvor indholdet ryger ned.

Er det mulig, og hvis, hvordan? Nogle eksempler ville være lækre.

Det skal vel være absolute pos. og kunne man så lave det ved at den fulgte musens koordinater, eller kan man få properties ud via getelementbyid og så rette det ?

Al hjælp vil være kanon. Ved det måske er lidt svært, så jeg har sat lidt point på højkant :)
Avatar billede kinderaeg Nybegynder
20. november 2006 - 12:55 #1
Avatar billede syncroniq Nybegynder
20. november 2006 - 14:33 #2
Hey,

Jeg har det her kode, men når jeg prøver og resize med musen, flytter den jo af gode grunde min div. Nogle der lige ved hvordan den klares?

<html>
<head></head>

<body contentEditable=true>
<script type="text/javascript">
<!--
var moving=false
var IE=document.all
function Dragnow(e){
  curposx=(IE ? event.clientX : e.pageX) // Cursorx Start Position
  curposy=(IE ? event.clientY : e.pageY) // Cursory Start Position
  objectx=parseInt(document.getElementById("moveobject").style.left) // Objectx Start Position
  objecty=parseInt(document.getElementById("moveobject").style.top) // Objecty Start Position
  moving=true
  document.onmousemove=Moveto
}

function Moveto(e){
  xx=(IE ? event.clientX : e.pageX)
  yy=(IE ? event.clientY : e.pageY)
  if (moving==true){
    document.getElementById("moveobject").style.left=xx-(curposx-objectx) // Objectx New Position
    document.getElementById("moveobject").style.top=yy-(curposy-objecty) //Objecty New Position
    return false
  }
}
// -->
</script>

<DIV id=moveobject contentEditable=true style="position:absolute; left:245px; top: 115px; " onmousedown="Dragnow(event)" onmouseup="moving=false">Move This Object</DIV>
</body>
</html>
Avatar billede kinderaeg Nybegynder
20. november 2006 - 15:56 #3
Du skal fange onresize og få den til at lade være med at flytte sig. Fx. som i nedenstående. Har bare lidt problemer når jeg slipper objektet efter det er lavet større :(

<html>
<head></head>

<body contentEditable=true>
<script type="text/javascript">
<!--
var moving=false;
var IE=document.all;
var resize = false;

function f1() {
  resize=true;
}

function Dragnow(e){
  curposx=(IE ? event.clientX : e.pageX) // Cursorx Start Position
  curposy=(IE ? event.clientY : e.pageY) // Cursory Start Position
  objectx=parseInt(document.getElementById("moveobject").style.left) // Objectx Start Position
  objecty=parseInt(document.getElementById("moveobject").style.top) // Objecty Start Position
  moving=true
  document.onmousemove=Moveto
}

function Moveto(e){
  if(!resize) {
  xx=(IE ? event.clientX : e.pageX)
    yy=(IE ? event.clientY : e.pageY)
    if (moving==true){
      document.getElementById("moveobject").style.left=xx-(curposx-objectx) // Objectx New Position
      document.getElementById("moveobject").style.top=yy-(curposy-objecty) //Objecty New Position
      return false
    }
  } else {
    resize = false;
  }
}
// -->
</script>

<DIV id=moveobject contentEditable=true style="position:absolute; left:245px; top: 115px; " onresize="f1()" onmousedown="Dragnow(event)" onmouseup="moving=false; resize=false;">Move This Object</DIV>
</body>
</html>
Avatar billede syncroniq Nybegynder
21. november 2006 - 07:26 #4
Hey,

du har faktisk svaret på mit spørgsmål. Her er den fungerende kilde....

<html>
<head></head>

<body contentEditable=true>
<script type="text/javascript">
<!--
var moving=false;
var IE=document.all;
var resize = false;

function f1() {
  resize=true;
  moving=false;
}

function Dragnow(e){
  curposx=(IE ? event.clientX : e.pageX) // Cursorx Start Position
  curposy=(IE ? event.clientY : e.pageY) // Cursory Start Position
  objectx=parseInt(document.getElementById("moveobject").style.left) // Objectx Start Position
  objecty=parseInt(document.getElementById("moveobject").style.top) // Objecty Start Position
  moving=true
  document.onmousemove=Moveto
}

function Moveto(e){
  if(!resize) {
  xx=(IE ? event.clientX : e.pageX)
    yy=(IE ? event.clientY : e.pageY)
    if (moving==true){
      document.getElementById("moveobject").style.left=xx-(curposx-objectx) // Objectx New Position
      document.getElementById("moveobject").style.top=yy-(curposy-objecty) //Objecty New Position
      return false
    }
  } else {
    resize = false;
  }
}
// -->
</script>

<DIV id=moveobject contentEditable=true style="position:absolute; left:245px; top: 115px; " onresize="f1()" onmousedown="Dragnow(event)" onmouseup="moving=false; resize=false;">Move This Object</DIV>
</body>
</html>

Ligger du ikke et svar?
Avatar billede kinderaeg Nybegynder
21. november 2006 - 08:49 #5
Svar :)
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