主题:  使用javascript在网页上画出矩形后,发现问题????

ztong

职务:普通成员
等级:1
金币:0.0
发贴:129
#12006/6/7 21:48:20
已经有一个页面,页面上有图象,要在图象上画一个矩形,使用javascript在网页上画出矩形后发现原来页面不见了,出现一个新的页面,只有一个新画的矩形,如何在原有的页面上画出矩形呢?
谢谢了!!



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#22006/6/8 11:58:00
先说一下你怎么画矩形



ztong

职务:普通成员
等级:1
金币:0.0
发贴:129
#32006/6/8 17:17:48
<SCRIPT language="javascript">
var canmove=false;
var leftX=0,topY=0,newX=0,newY=0;
var color1="#ff0000";

function moveAble()
{
if(event.srcElement.id=="moveArea"
{
canmove=true;

leftX=(event.clientX);

topY=(event.clientY);


var string2=" leftX: "+leftX+" topY: "+topY;

}

}

function moveDisable()
{
canmove=false;
drawRect(leftX,topY,newX,newY,color1,1,0);
}

function move()
{
if(canmove)
{
if(event.srcElement.id=="moveArea"
{

newX = (event.clientX);
newY = (event.clientY);

var string1="newX:"+newX+"newY:"+newY;

}
else
{
leftX=0;
topY=0;
newX = 0;
newY = 0;
}
event.returnvalue = false;
}
}



function drawDot(x,y,color,size)
{
var string3="<table border='0' cellspacing=0 cellpadding=0><tr>";
string3+="<td style='position: absolute; left: "+(x)+"; top: "+(y)+";background-color: "+color+"' width="+size+" height="+size+"></td></tr></table>";
document.write(string3);
}

function drawLine(x1,y1,x2,y2,color,size,style)
{
var i;
var r=Math.floor(Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)));
var theta=Math.atan((x2-x1)/(y2-y1));
if(((y2-y1)<0 && (x2-x1)>0)||((y2-y1)<0 && (x2-x1)<0))
theta=Math.PI+theta;
var dx=Math.sin(theta);//alert(dx)?
var dy=Math.cos(theta);
for(i=0;i<r;i++)
{
switch(style)
{
case 0:
drawDot(x1+i*dx,y1+i*dy,color,size);
break;
case 1:
i+=size*2;
drawDot(x1+i*dx,y1+i*dy,color,size);
break;
case 2:
if(Math.floor(i/4/size)%2==0)
{
drawDot(x1+i*dx,y1+i*dy,color,size);
}
else
{
i+=size*2;
drawDot(x1+i*dx,y1+i*dy,color,size);
}
break;
default:
drawDot(x1+i*dx,y1+i*dy,color,size);
break;
}
}
}

function drawRect(x1,y1,x2,y2,color,size,style)
{
drawLine(x1,y1,x2,y1,color,size,style);
drawLine(x1,y2,x2,y2,color,size,style);
drawLine(x1,y1,x1,y2,color,size,style);
drawLine(x2,y1,x2,y2,color,size,style);
}
</SCRIPT>



Tassadar

职务:普通成员
等级:1
金币:-1.0
发贴:38
#42006/6/8 17:44:32
加个透明层,层上面放个一乘一表格...................................

比较旁门左道.........



ztong

职务:普通成员
等级:1
金币:0.0
发贴:129
#52006/6/12 15:32:57
使用javascript在网页上画出矩形后发现原来页面不见了,出现一个新的页面,只有一个新画的矩形,如何在原有的页面上画出矩形呢?
谢谢了!!



ztong

职务:普通成员
等级:1
金币:0.0
发贴:129
#62006/6/12 15:40:55
要求原有页面并不消失,直接叠加新图片,将新图片与原有页面叠加,怎么办???



ztong

职务:普通成员
等级:1
金币:0.0
发贴:129
#72006/6/12 16:04:50
我的思想是:在一个图片上,当点击鼠标时,可以画出一个矩形,这个矩形与原有的图片一同显示在页面上,这样可以在原有图片上显示鼠标画矩形的位置,但是我在画矩形后发现页面更新到另一个页面,此页面只有一个矩形,而原有的页面不见了,如何将矩形同原有页面一同显示在一个页面上呢???大侠帮帮忙啊!!!!



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#82006/6/12 16:25:45
用一个容器,比如DIV或者SPAN来写入新的代码,而不是用document.write



ztong

职务:普通成员
等级:1
金币:0.0
发贴:129
#92006/6/12 16:35:31
能否再详细点,还是不太会,以前没接触过此类问题!



ztong

职务:普通成员
等级:1
金币:0.0
发贴:129
#102006/6/12 16:46:09
矩形绘图没有问题,只是画图后,矩形显示在另一个页面上,而不是原有页面上,这是我的意思!!!!如何将矩形和原有页面同时显示在一个页面上



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#112006/6/12 17:45:12
应该用div浮动层吧
以前我看到过老外用javascript绘图的函数库,功能非常丰富,我没研究过,可以网上查找这资料。不过函数库肯定很复杂的,参考一下别人做法可能比自己想的要好一些。


非常大鱼

ztong

职务:普通成员
等级:1
金币:0.0
发贴:129
#122006/6/12 18:19:53
能否再详细些????
图已经画出来了,但是显示在另一个页面上,不是当前页面,如何在当前页面上画呢?浮动层是什么?



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#132006/6/12 19:48:12
先准备一个容器(obj)
然后obj.innerHTML = string3
而不是document.write(string3);


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]



ztong

职务:普通成员
等级:1
金币:0.0
发贴:129
#142006/6/12 21:50:37
可是现在,我要在原有图象1上面画矩形,要求执行后,页面既要有图象1又有矩形,如何实现呢????obj.innerHTML=string3+image1;



ztong

职务:普通成员
等级:1
金币:0.0
发贴:129
#152006/6/12 22:05:54
obj.innerHTML += string3