JS画线
来源:互联网 发布:怎么屏蔽网络监控 编辑:程序博客网 时间:2024/04/28 10:33
用Javascript画线
用Javascript画线的方法很多,有SVG,VML、canvas等,但是在现阶段,貌似这些方法都不能兼容所有浏览器。所以我还是用最原始的办法法写了一个画线方法。思路也很简单,就是用一个像素的DIV拼成一条线。
Js代码:
function line(startX, startY, endX, endY, container) {
if (startX == endX) {
if (startY > endY) {
var tempY = startY;
startY = endY;
endY = tempY;
}
for (var k = startY; k < endY; k++) {
createPoint(container, startX, k);
}
}
// y = ax + b
var a = (startY - endY) / (startX - endX);
var b = startY - ((startY - endY) / (startX - endX)) * startX;
if (Math.abs(startX - endX) > Math.abs(startY - endY)) {
if (startX > endX) {
var tempX = endX;
endX = startX;
startX = tempX;
}
var left = container.style.left;
var top = container.style.top;
for (var i = startX; i <= endX; i++) {
createPoint(container, i, a * i + b);
}
} else {
if (startY > endY) {
var tempY = startY;
startY = endY;
endY = tempY;
}
for (var j = startY; j <= endY; j++) {
createPoint(container, (j - b) / a, j);
}
}
}
function createPoint(container, x, y) {
var node = document.createElement(div);
node.className = line;
node.style.marginTop = y;
node.style.marginLeft = x;
container.appendChild(node);
}
当然还需要一段CSS来控制样式:
Css代码
div.line {
position:absolute;
z-index:2;
width:1px;
height:1px;
font-size:1px;
background-color:#0000FF;
overflow:hidden;
}
来一段HTML测试一下
<html>
<head>
<script type="text/javascript" src="../js/jsline.js"></script>
<script type="text/javascript">
function testLine() {
line(1, 2, 88, 88, document.getElementById(container));
}
</script>
</head>
<body>
<div id="container" style="width:400px;height:400px;border:1px solid #000000;margin-left:50px"></div>
<input type="button" value="line" onclick="testLine();"></input>
</body>
</html>
0 0
- JS画线
- JS画线
- 利用 wz_jsgraphics.js 画线
- JS两点画线
- three.js画线
- 画线
- 画线
- 画线
- 画线
- 画线
- 画线
- 画线
- three.js第三篇【简单画线】
- JS画线,虽然很原始,但是兼容所有浏览器
- 一个可以在页面上随意画线、多边形、圆,填充等功能的js
- 一个可以在页面上随意画线、多边形、圆,填充等功能的js
- mapx 画线
- Arcgis 画线
- 浏览器标准模式和怪异模式
- LeetCode之Sum of Two Integers
- wdcp面板升级PHP7.0脚本
- 类欧几里得算法与推导
- Effective STL: 选择合适的容器
- JS画线
- Centos7中进程操作
- Atitit 手机图片备份解决方案attilax总结
- 模拟赛 红蓝牌
- 浅谈在chrome中“google search”与“输入URL”的区别
- Android Studio之解析Gradle
- CSS入门笔记2
- Atitit 数据库视图与表的wrap与层级查询规范
- 1.1 创建一个wxPython应用