He estado usando una versión modificada de esto por un tiempo. Funciona bien.
http://www.ofdream.com/code/css/xline2.php
Así que el primer clic, la caída y el objeto allí como un div marcador de posición, tal vez un pequeño círculo, entonces o bien mantener a volver a dibujar una línea a medida que avanzan su ratón, o que hagan que cuando hacen clic en el segundo tiempo, usando el marcador de posición original como una guía.
Recientemente he hecho otra función auxiliar para esto, porque mi herramienta consiste en líneas de moverse:
function setLinePos(x1, y1, x2, y2, id) {
if (x2 < x1) {
var temp = x1;
x1 = x2;
x2 = temp;
temp = y1;
y1 = y2;
y2 = temp;
}
var line = $('#line' + id);
var length = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
line.css('width', length + "px");
var angle = Math.atan((y2 - y1)/(x2 - x1));
line.css('top', y1 + 0.5 * length * Math.sin(angle) + "px");
line.css('left', x1 - 0.5 * length * (1 - Math.cos(angle)) + "px");
line.css('-moz-transform', "rotate(" + angle + "rad)");
line.css('-webkit-transform', "rotate(" + angle + "rad)");
line.css('-o-transform', "rotate(" + angle + "rad)");
}
Esa es la versión de jQuery, y en esta iteración tengo ningún requisito IE así que ignoro. Podría ser adaptado de la función original bastante fácilmente.
Utilizando el lienzo html5 deberías poder hacer esto solo con un evento onclick pero no tengo experiencia con el lienzo. Todo lo que jQuery hará por ti es el enlace del evento y obtener la posición del mouse. – jholloman
Google es tu amigo: http://www.amaslo.com/2012/06/drawing-diagonal-line-in-htmlcssjs-with.html – kei