如何使用GWT或HTML + CSS + JavaScript绘制对角线
How to draw a diagonal line with GWT or HTML+CSS+JavaScript?
我正在开发一个Web应用程序,我需要用线条连接东西。如果线条不限于水平/垂直,那就太好了。我还需要检测行上的点击。到目前为止,我考虑过的替代方案:
使用 CSS 旋转
我创建一个具有适当长度的div 或 hr,然后在他们的样式中使用 CSS 转换属性。在这个网站的某个地方有一个关于它的答案。
优势:
- 简单。
- 可以检测点击。
弊:
- 需要特定于浏览器的 CSS。
在服务器上创建映像
我创建了一个网页,它将fromx,fromy,tox,toy 作为GET或POST参数,并返回线的图像。
优势:
- 简单。
- 标准。
弊:
- 如果越线,我无法检测到点击。(他们是。
- 需要服务器参与。
使用多个小潜水
我创建了大量的 5x5div 并将它们定位成一条线。
优势:
- 可以检测点击。
- 标准。
弊:
- 疯狂。
放弃
我放弃并使用 gwt 连接器。它只绘制水平线和垂直线,但至少它非常简单,并且可以移动连接的对象。
您推荐哪个选项?还有其他我没有考虑过吗?
如果您有可用的 CSS3:http://jsfiddle.net/rudiedirkx/MKkxX/
连接点,这将需要大量(非常小,非常简单)的计算。服务器端计算。每条线的旋转和平移以及线条长度将不同。这是很多计算。但对于客户来说,这将非常简单。那是如果客户端支持 CSS3 =)
我会选择:http://raphaeljs.com/这是一个跨平台的JavaScript库,可以创建和渲染SVG
你可以添加一个画布元素并通过脚本画一条线(例如jQuery)。Canvas 从 IE9 开始支持 并使用 IECanvas polyfil。
我遍历每个具有.class"线框"的元素,并在其中添加一个画布元素。我使用与边框相同的颜色,以便画布保持正确的样式。
$(document).ready(function() {
var id = 1;
$('.wireframe').each(function() {
var $this = $(this);
var w = $this.width();
var h = $this.height();
//add canvas element with appropriate with and height
$this.append('<canvas id="canvas' + id + '" width="' + w + 'px" height="' + h + 'px">');
var canvas = document.getElementById('canvas' + id);
var ctx = canvas.getContext('2d');
ctx.strokeStyle = $(this).css("borderColor");
ctx.beginPath();
ctx.moveTo(0,0);
ctx.lineTo(w,h);
ctx.moveTo(0,h);
ctx.lineTo(w,0);
ctx.stroke();
id++;
});
});
- 使用CSS/JavaScript更改剑道图工具提示文本颜色
- CSS/Javascript Lightbox
- (html/css/javascript)试图使导航栏中的“当前页面”链接变成不同的颜色
- 在css/javascript中单击,切换图像上的去饱和度
- 如何使用HTML/CSS/JavaScript开发桌面应用程序
- 我的CSS/Javascript下拉菜单测试代码出了什么问题
- 如何在HTML CSS JavaScript中根据纵横比调整高度或宽度
- 使用CSS/Javascript设计图像地图的样式
- 如何使手风琴(CSS+javascript)工作
- 在项目中组织CSS/JavaScript的最佳方式是什么
- 用于检查未使用的CSS/JavaScript选择器的NetBeans插件
- HTML CSS- javascript .click() event
- 使用HTML/CSS/JavaScript更改文件名
- CSS Javascript在1 onClick上处理2事件
- CSS/Javascript带有类's和id's
- 使用CSS/JavaScript在活动页面上突出显示活动导航菜单项,无id
- 选择框在应用 css/javascript 时失去功能
- 使用 CSS/JavaScript 安排动画
- 动态图像放置帮助 - CSS / javascript / jquery.
- PhoneGap Build Service "Build in HTML5, CSS, JavaScript