怎样让图形在IE改变大小的时候不变形?

jjdelphi 2004-06-15 04:59:28
页面是这样布局的:
用js画一个图形,比如一个五角星,一条斜线。
然后在下面从数据库中取数,形成表格。
当窗口最大化的时候,图形显示正常,但是在改变窗口大小的时候,图形就会变形。
想要在窗口改变的时候,重绘图形以显示正常。但是从onResize里面执行画图脚本DrawL()的时候,只是把图形重绘了一遍,从数据库取数的表格没有了。
怎样解决这个问题?
...全文
132 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
梅雪香 2004-06-20
用绝对大小是不是就不变形了?
  • 打赏
  • 举报
回复
BlueDestiny 2004-06-16
  • 打赏
  • 举报
回复
gjd111686 2004-06-15
<html xmlns:v="urn:schemas-microsoft-com:vml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title></title>
<style>
v\:*{behavior:url(#default#vml)}
</style>
</head>

<body onload="drawLinesX(4500);drawLinesY(13);">
<script>
function drawLinesX(iMaxX)
{
iCount=0;//画横坐标
var iTextPoint=1;
for(var iIndex=1;iIndex<=10;iIndex++)
{
var iPositionY=2750-iIndex*245;
var strTo=iMaxX+" "+iPositionY;
var newLine=document.createElement("<v:line from='200 "+iPositionY+"' to='"+strTo+"' style='position:absolute;z-index:8'></v:line>");
GroupID.insertBefore(newLine);
if(iCount%2!=0)
{
var newStroke=document.createElement("<v:stroke color='#C0C0C0'>");
newLine.insertBefore(newStroke);
var newShape=document.createElement("<v:shape style='position:absolute;left:-350;top:"+(iPositionY-50)+";width:1000px;height:200px;z-index:8' coordsize='21600,21600' fillcolor='white'></v:shape>");
GroupID.insertBefore(newShape);
var newText=document.createElement("<v:textbox id='T"+iTextPoint+"' inset='3pt,0pt,3pt,0pt' style='font-size:10pt;v-text-anchor:bottom-right-baseline'></v:textbox>");
newShape.insertBefore(newText);
newText.innerText=iTextPoint;
iTextPoint++;
}
else
{
var newStroke=document.createElement("<v:stroke dashstyle='dot' color='#000000'/>");
newLine.insertBefore(newStroke);
}
iCount++;
}
}
function drawLinesY(iMaxY)
{
var iTextPoint=1;
for(var iIndex=1;iIndex<=iMaxY;iIndex++)
{
var iPositionY=170+iIndex*300;
var newLine=document.createElement("<v:line from='"+iPositionY+" 2700' to='"+iPositionY+" 2750' style='position:absolute;z-index:8'></v:line>");
GroupID.insertBefore(newLine);
var newStroke=document.createElement("<v:stroke color='black'>");
newLine.insertBefore(newStroke);
var newShape=document.createElement("<v:shape style='position:absolute;left:"+(iPositionY-50)+";top:2750;width:200px;height:150px;z-index:8' coordsize='21600,21600' fillcolor='white'></v:shape>");
GroupID.insertBefore(newShape);
var newText=document.createElement("<v:textbox id='ty"+iTextPoint+"' inset='3pt,0pt,3pt,0pt' style='font-size:9pt;v-text-anchor:bottom-right-baseline'></v:textbox>");
newShape.insertBefore(newText);
newText.innerHTML=iTextPoint;
iTextPoint++;
}
}
function drawBar(iUnit,iIndex)
{
var iHeight=iUnit*245-50;
var iPositionX=2750-iUnit*245;
var iPositionY=170+iIndex*300;
var newShape=document.createElement("<v:rect style='position:absolute;left:"+iPositionY+";top:"+iPositionX+";width:190px;height:"+iHeight+"px;z-index:9' coordsize='21600,21600' fillcolor='#EEEEEE'></v:rect>");
GroupID.insertBefore(newShape);
}
function drawBars()
{

for(iIndex=1;iIndex<13;iIndex++)
{
drawBar(Math.random()*10,iIndex);
}
}
</script>
<v:group ID="GroupID" style="width:700px;height:500px" coordsize="4900,3500">
<v:line from="200,100" to="200,2700" style="z-index:1;position:absolute" strokeweight="1pt">
<v:stroke StartArrow="classic" dashstyle="Single"/>
</v:line>
<v:line from="200,2700" to="4500,2700" style="z-index:1;position:absolute" strokeweight="1pt">
<v:stroke EndArrow="classic" dashstyle="Single"/>
</v:line>
<v:rect style="width:4600px;height:2900px" coordsize="21600,21600" fillcolor="#FFFFFF" strokecolor="#000000">
<v:shadow on="True" type="single" color="silver" offset="4pt,3pt"></v:shadow>
</v:rect>
<v:shape style="position:absolute;left:-350;top:2650;width:1000px;height:200px;z-index:8" coordsize="21600,21600" fillcolor="#FFFFFF">
<v:textbox id="TextID" inset="3pt,0pt,3pt,0pt" align="center" style="font-size:9pt;v-text-anchor:bottom-center-baseline">0</v:textbox>
</v:shape>
</v:group>
<br>
<input type="button" value="生成曲线" onclick="drawBars();">
</body>

</html>
  • 打赏
  • 举报
回复
gjd111686 2004-06-15
画图用VML就可以了.
  • 打赏
  • 举报
回复
jjdelphi 2004-06-15
代码如下:刷新出错
<body leftmargin=20 topmargin=20 onResize="DrawHead()">

<TABLE border=0 bgcolor="000000" cellspacing="1" width=100%>

<TR height=20% bgcolor="FFFFFF" align="center">
<TD height=100 width=20% id="td1" colSpan=2 class="td1" onload=DrawHead()>
</TD>
<TD>第3列</TD>
<TD>4</TD>
<TD>5</TD>
</TR>

</TABLE>

<script>
function a(x,y,color)
{
document.write("<img border='0' style='position: absolute; left: "+(x+20)+"; top: "+(y+20)+";background-color: "+color+"' width=1 height=1>")
}

function line(x1,y1,x2,y2,color)
{
var tmp
if(x1>=x2)
{
tmp=x1;
x1=x2;
x2=tmp;
tmp=y1;
y1=y2;
y2=tmp;
}
for(var i=x1;i<=x2;i++)
{
x = i;
y = (y2 - y1) / (x2 - x1) * (x - x1) + y1; //斜率计算y
a(x,y,color);
}
}

function DrawHead()
{
L = td1.offsetLeft;
T = td1.offsetTop;
W = td1.offsetWidth;
H = td1.offsetHeight;

line ( L,T,L+W,T+H,'#000000');
}

DrawHead();
</script>

</BODY>
  • 打赏
  • 举报
回复
相关推荐
发帖
CSS

6.0w+

社区成员

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
帖子事件
创建了帖子
2004-06-15 04:59
社区公告
暂无公告