这样的甘特图怎么用Javascript画?

scbb 2012-09-03 08:16:35
jQuery可以画甘特图,但我要画的甘特图有点特殊。
下面的例子里,有4个task。

1)左边的2个,上短下长,短的部分表示已经完成的部分。
这个还不是很难。
2)要求各个task尽可能画在一行里,例如:各个task的开始和结束时间没有重叠的话就可以画在一行里。
有重叠的,也尽量画在2行里。
这个jQuery好像更不行。



达人们。。。求救啊。。
...全文
358 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
scbb 2012-09-20
  • 打赏
  • 举报
回复
http://goro.iteye.com/blog/1682377
自己在jquery上改好的例子。
scbb 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
jquery可以做的,就是并排算法要自己稍微想下
[/Quote]

能给个例子吗?
guwenjing 2012-09-13
  • 打赏
  • 举报
回复
jquery可以做的,就是并排算法要自己稍微想下
scbb 2012-09-06
  • 打赏
  • 举报
回复
自己up
licip 2012-09-04
  • 打赏
  • 举报
回复
两个div+css样式,不就ok了
hch126163 2012-09-04
  • 打赏
  • 举报
回复
2个div就可以搞定
scbb 2012-09-03
  • 打赏
  • 举报
回复
楼上没看要求吗?
我用Jquery也能画甘特图的。 就是不能满足我顶楼写的要求。
花钱月下 2012-09-03
  • 打赏
  • 举报
回复
给你个例子 自己改改就行了

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>test</title>
<style type="text/css">
.tableMain{ border-left:solid 1px #cdcdcd;border-top:solid 1px #cdcdcd; font-size:10.5pt;}
.tableMain td{ padding:1px 5px; border-bottom:solid 1px #cdcdcd;border-right:solid 1px #cdcdcd}
.td1{ background:url(/2/1/images/temp/Column_bg.jpg) #00ff00; border:0 !important;}
</style>
<script type="text/javascript">
function Drawing() {
var arrRow=new Array("调研","数据库","底层","代码编写","阶段测试","交付测试","问题反馈","修改","测试","上线");
var arrColumn=new Array(5,8,2,4,2,3,3,2,2,1);
var ColumnSum=ArraySum(arrColumn);
var str = "<table class=\"tableMain\" cellpadding=\"0\" cellspacing=\"0\">";
var startNumber = 0;
str += "<tr>";
for (k = 0; k < ColumnSum; k++) {
str += "<td>" + (k == 0 ? "项目\\时间" : k) + "</td>";
}
str += "</tr>";
for (i = 0; i < arrRow.length; i++) {
str += "<tr>";
str += "<td>"+arrRow[i]+"</td>";
for (k = 1; k < ColumnSum; k++) {
if (k > startNumber && k <= arrColumn[i]+startNumber)
str += "<td class=\"td1\">" + (k == startNumber+1 ? arrColumn[i] : " ") + "</td>";
else
str += "<td> </td>";
}
str += "</tr>";
startNumber += arrColumn[i];
}
str += "</table>";
return str;
}

function ArraySum(arr) {
var sum = 0;
for (i = 0; i < arr.length; i++) {
sum+=arr[i];
}
return sum;
}
</script>
</head>
<body><script type="text/javascript">
document.write(Drawing());
</script>
</body>
</html>

87,918

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧