Avatar billede nikolajdu Nybegynder
30. november 2001 - 09:24 Der er 6 kommentarer og
1 løsning

Mustisk VML placeringsproblemer

Jeg sidder lidt og leger med VML, men spørgsmålet her har i og for sig intet med det at gøre.

Når jeg tegner en streg er det musens spids, der bruges som angivelse af hvorfra hvortil, men men men men.

Tegner jeg en cirkel eller en firkant, så bruges tilsyneladende det nederste af musens bund eller endnu mere?? Se det fatter jeg ikke en brik af.

Klik for at angive startpunkt og klik igen for at tegne figuren.

<HTML XMLNS:v=\"urn:schemas-microsoft-com:vml\">
<html>
<head>
<title>Nikolajdu Tegner</title>
<style>

v\\:* { behavior: url(#default#VML); }

.top {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; background-color:teal; color: #33CCFF; text-decoration: none;}
</style>


<SCRIPT LANGUAGE=\"JavaScript\">


var Ymouse = Xmouse = 0;
var klik = 0;
var formen = \"streg\";


function init(){

document.f.minForm.value=formen

function Mouse( evnt ) {

  Ymouse=event.y;
  Xmouse=event.x;

  document.forms.f.Xpos.value=Xmouse;
  document.forms.f.Ypos.value=Ymouse;
 
};

  document.onmousemove=Mouse;



function left(evnt) {

if (event.button==1 && Ymouse>=30)

tegn()

}
document.onmousedown=left;

}

function tegn(){

if (klik==0){
tempX = Xmouse;
tempY = Ymouse;

document.getElementById(\'start\').style.visibility=\"visible\"
document.getElementById(\'start\').style.left=tempX
document.getElementById(\'start\').style.top=tempY

klik++

}else if (formen==\"streg\"){

document.getElementById(\'start\').style.visibility=\"hidden\"

document.getElementById(\'tegnHer\').innerHTML+=\'<v:POLYLINE style=\"Z-INDEX:1;CURSOR:crosshair;POSITION:absolute;antialias:true\" points=\"\'+tempX+\',\'+tempY+\',\'+Xmouse+\',\'+Ymouse+\'\"></v:POLYLINE>\';

tempX = Xmouse;
tempY = Ymouse;


}else if(formen==\"cirkel\" && Xmouse>tempX&&Ymouse>tempY){

document.getElementById(\'start\').style.visibility=\"hidden\"

myWidth = Xmouse-tempX;
myHeight = Ymouse-tempY;

document.getElementById(\'tegnHer\').innerHTML+=\'<v:oval style=\"position:absolute;top:\'+tempY+\';left:\'+tempX+\';width:\'+myWidth+\'pt;height:\'+myHeight+\'pt\" fillcolor=\"red\"></v:oval>\'

tempX = Xmouse;
tempY = Ymouse;

klik = 0;

    }else if(formen==\"firkant\"  && Xmouse>tempX&&Ymouse>tempY){
   
    document.getElementById(\'start\').style.visibility=\"hidden\"

myWidth = Xmouse-tempX;
myHeight = Ymouse-tempY;

document.getElementById(\'tegnHer\').innerHTML+=\'<v:rect fillcolor=\"green\" style=\"position:absolute;top:\'+tempY+\';left:\'+tempX+\';width:\'+myWidth+\'pt;height:\'+myHeight+\'pt\"></v:rect>\'

tempX = Xmouse;
tempY = Ymouse;

klik = 0;
   
    }else if(Xmouse<tempX||Ymouse<tempY){
    alert(\'Det kan ikke lave en negativ figur her\')
   
    document.getElementById(\'start\').style.visibility=\"hidden\"
   
    klik = 0;
    }
}


</script>

</head>


<body bgcolor=\"Teal\" scroll=no onLoad=\"init()\" scroll=no leftmargin=\"0\" marginheight=\"0\" marginwidth=\"0\">

<script>
document.write(\'<div style=\"position:absolute;top:0;left:0;width:\'+document.body.clientWidth+\';height:30;background-color:#999999;vertical-align: middle;\">\')
</script>
<form name=\"f\">


<input type=\"button\" class=\"top\" size=5 value=\"Streg\" onClick=\"klik=0;formen=\'streg\';document.f.minForm.value=formen\">
<input type=\"button\" class=\"top\" size=5 value=\"Cirkel\" onClick=\"klik=0;formen=\'cirkel\';document.f.minForm.value=formen\">
<input type=\"button\" class=\"top\" size=5 value=\"Firkant\" onClick=\"klik=0;formen=\'firkant\';document.f.minForm.value=formen\">
<input type=\'text\' class=\"top\" name=\'minForm\' size=5 onfocus=\'this.blur()\'>
<input type=\'text\' class=\"top\" name=\'Xpos\' size=5 onfocus=\'this.blur()\'>
<input type=\'text\' class=\"top\" name=\'Ypos\' size=5 onfocus=\'this.blur()\'>
</div>
<br><br>
<p>Klik for at tegne</p>

</form>

<div ID=\"tegnHer\" style=\"position:absolute;top:0;left:0\"><div>
<div ID=\"start\" style=\"position:absolute;top:0;left:0;visibility:hidden;\">x<div>

</body>
</html>

/Nikolaj
Avatar billede nikolajdu Nybegynder
30. november 2001 - 09:42 #1
Inden jeg får skæld ud!! Så har jeg altså rettet placeringen af det div der indeholder felterne.
Avatar billede Slettet bruger
30. november 2001 - 16:33 #2
Jeg vil bare lige sige, at jeg oplever det samme problem i IE5, så det er formentlig ikke bare en browser-bug...
Avatar billede nikolajdu Nybegynder
30. november 2001 - 22:28 #3
Jeg har kun kigget på det i IE 6.0, men er det ikke mærkkeligt???
Avatar billede Slettet bruger
01. december 2001 - 10:19 #4
Jo, det må man nok sige! Det ender nok med, du må eksperimentere med at fratrække pixels fra myWidth og myHeight. Men det garanterer jo ikke en cross-browser løsning.
Men mærkeligt er det, helt klart...
Avatar billede nikolajdu Nybegynder
01. december 2001 - 22:57 #5
Netscape er slet ikke glad for VML anyway, så crossbrowser var det aldrig tiltænkt. Det var mere for at lege lidt med VML.
Avatar billede Slettet bruger
02. december 2001 - 16:07 #6
Ja, jeg mente egentlig cross-platform og cross-resolution (eller hvad man nu kalder det)!
Avatar billede nikolajdu Nybegynder
04. december 2001 - 11:50 #7
Hilfe hilfe...

Nå, tror jeg lukker.
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