日期:2014-05-16 浏览次数:20650 次
用Javascript写了一个网页上的动态折线图,类似心电图的那种.
其中的画线用到的是我上一篇文章里写的那种方法.
http://redstarofsleep.iteye.com/blog/1109116
先是简单的Demo页面:
<div class="outer" id="outer"> <div class="inner"></div> <div class="inner"></div> <div class="inner"></div> <div class="inner"></div> <div class="inner"></div> <div class="inner"></div> <div class="inner"></div> <div class="inner"></div> <div class="inner"></div> <div class="inner"></div> </div> <input type="button" value="start" onclick="startLine();"></input>?
然后是CSS:
div.outer {
width: 402px;
height: 300px;
border: 1px solid #000000;
}
div.inner {
width: 40px;
height: 300px;
float: left;
margin: 0 0;
}
?
最后是核心的Javascript:
// 起始点的纵坐标
var startPoint;
function startLine() {
startPoint = 0;
// 设定定时器,每秒钟更新一次
var timeLine = setInterval("doLine()",1000);
}
function doLine() {
// 结束点的综坐标,这里以随机数来产生,实际中通过Ajax从后台取
var endPoint = Math.floor(Math.random() * 300);
// 获得大容器
var outer = document.getElementById('outer');
// 大容器中的第一个竖条
var firstInner = outer.getElementsByTagName('div')[0];
// 将第一个竖条中的已有线删除
var linePoint = firstInner.getElementsByTagName('div');
var length = linePoint.length;
for (var i = length-1; i >= 0; i--) {
firstInner.removeChild(linePoint[i]);
}
// 将第一个竖条放到大容器的最后
document.getElementById('outer').appendChild(firstInner);
// 在第一个竖条内画线(画线的方法用的是我上一篇博客里写的)
_jsline.line(0, startPoint, 40, endPoint, firstInner);
// 将这一次的结束点作为下一次的起始点
startPoint = endPoint;
}
?
?
实测Firefox5,IE9都是OK的,估计其它浏览器应该也问题不大.