以下代码是计算坐标的,画线的等一下给你补上,好久没有搞过VML了 ie通过,其他浏览器如果你一定要兼容,自己想办法去弄吧<SCRIPT>
var cc=false;
var pos=new Array()
document.onclick=function(){
if (cc=!cc){
pos.push([event.x,event.y])
}else {
pos.push([event.x,event.y])
var vv=Math.sqrt(Math.pow((pos[1][0]-pos[0][0]),2)+Math.pow((pos[1][1]-pos[0][1]),2))
alert(["两点坐标分别是:",pos[0][0],",",pos[0][1],"和",pos[1][0],",",pos[1][1],".距离是:",vv].join(""))
pos=[]
}
}
</script>
var cc=false;
var pos=new Array()
document.onclick=function(){
if (cc=!cc){
pos.push([event.x,event.y])
}else {
pos.push([event.x,event.y])
var vv=Math.sqrt(Math.pow((pos[1][0]-pos[0][0]),2)+Math.pow((pos[1][1]-pos[0][1]),2))
alert(["两点坐标分别是:",pos[0][0],",",pos[0][1],"和",pos[1][0],",",pos[1][1],".距离是:",vv].join(""))
pos=[]
}
}
</script>
第二点坐标: X:<input id=t3 value=0 size=4>Y:<input id=t4 value=0 size=4><br><SCRIPT>
var cc=false;
var pos=new Array()
document.onclick=function(){
if (cc=!cc){
pos.push([event.x,event.y])
}else {
pos.push([event.x,event.y])
var vv=Math.sqrt(Math.pow((pos[1][0]-pos[0][0]),2)+Math.pow((pos[1][1]-pos[0][1]),2))
alert(["坐标分别是:",pos[0][0],",",pos[0][1],"和",pos[1][0],",",pos[1][1],".距离:",vv].join(""))
t1.value=t2.value=t3.value=t4.value=0
pos=[]
}
}
document.onmousemove=function(){
if (!cc){
t1.value=event.x
t2.value=event.y
}else{
t3.value=event.x
t4.value=event.y
}
}
</script>
<style type="text/css">v\:* {behavior:url(#default#VML);}</style>
<body>
第一点坐标: X:<input id=t1 value=0 size=4>Y:<input id=t2 value=0 size=4><br>
第二点坐标: X:<input id=t3 value=0 size=4>Y:<input id=t4 value=0 size=4><br><SCRIPT>
//以下四个全局变量
var cc=false; //cc: true:第一点已经按下 false:第二点已经按下
var pos=new Array() //保存第一点和第二点的位置 [x1,y1,x2,y2]
var o=null; //直线
var dot=null; //第一点按下的时候画的点,这个点会在第二点按下的同时删除document.onclick=function(){
if (cc=!cc){ //第一点已经按下
pos.push([event.x,event.y]) //保存第一点坐标
if (o) o.removeNode(true) //如果之前画过线,先删除它 //下面几行在第一点按下的位置画个点注:因为vml没有直接画点的方法,所以我画的实际是一条极短的短线
var s='<v:line from="'+pos[0][0]+','+pos[0][1]+'" to="'+(pos[0][0]+2)+','+(pos[0][1]+2)+'" style="position:absolute;left:0px;top:0px;"></v:line>';
dot=document.createElement(s);
document.body.insertAdjacentElement('BeforeEnd',dot); }else { //第二点已经按下 pos.push([event.x,event.y]) //保存第二点位置先
//计算距离
var vv=Math.sqrt(Math.pow((pos[1][0]-pos[0][0]),2)+Math.pow((pos[1][1]-pos[0][1]),2))
if (dot) dot.removeNode(true) //删除第一点按下的时候画的点
//下面三行画线
s='<v:line from="'+pos[0][0]+','+pos[0][1]+'" to="'+pos[1][0]+','+pos[1][1]+'" style="position:absolute;left:0px;top:0px;"></v:line>';
o=document.createElement(s);
document.body.insertAdjacentElement('BeforeEnd',o); alert(["坐标分别是:",pos[0][0],",",pos[0][1],"和",pos[1][0],",",pos[1][1],".距离:",vv].join(""))
//清空以前保存的数据
t1.value=t2.value=t3.value=t4.value=0
pos=[]
}
}
document.onmousemove=function(){
if (!cc){ //第一点还没有按下
t1.value=event.x
t2.value=event.y
}else{
t3.value=event.x
t4.value=event.y
}
}
</script>
</body>
</html>
pos[0]=[x1,y1]
pos[1]=[x2,y2]才是对的
大哥 能不能帮我把这个也解决了