javascript - 在 JavaScript 中绘制直线

标签 javascript jquery draw

我只是想用 JavaScript 画一条线。

我希望它是这样的:http://deepliquid.com/projects/blog/arrows2.html

我的版本:http://jsfiddle.net/shawn31313/qsWML/5/show

效果不太好,我不知道如何让它发挥作用。这一定是我的 JavaScript 中的问题。

这是我的代码:

$(document).ready(function() {
    var dragStatus = 2,
        getPos, giveRandomID;
    $(document).mousedown(function(event) {
        dragStatus = 0;
        getPos = {
            top: event.clientY,
            left: event.clientX
        };
        giveRandomID = Math.floor(Math.random() * 99999);
    });
    $(document).mousemove(function() {
        var line = $('#line' + giveRandomID);
        if (dragStatus == 0) {
            $('body').append("<div id='line" + giveRandomID + "' style='position:absolute;top:" + getPos.top + "px;left:" + getPos.left + "px;background:black;width:2px;height:5px'></div>");
            dragStatus = 1;
        }
        if (dragStatus == 1) {
            if (event.clientX > getPos.left) {
                line.css({
                    left: getPos.left,
                    width: event.clientX - getPos.left
                });
            } else {
                line.css({
                    left: event.clientX,
                    width: getPos.left - event.clientX
                });
            }
            if (event.clientY > getPos.top) {
                line.css({
                    top: getPos.top - Math.abs((event.clientY - getPos.top) * 2),
                    '-webkit-transform': 'rotate(' + (event.clientY - getPos.top) + 'deg)'
                });
            } else {
                line.css({
                    top: getPos.top + Math.abs((getPos.top - event.clientY) * 2),
                    '-webkit-transform': 'rotate(' + (getPos.top - event.clientY) + 'deg)'
                });
            }
            //for DEG  "-" Top-Math.abs(DEG*2) for Deg "+" Top+(DEG*2)
        }
    });
    $(document).mouseup(function() {
        dragStatus = 2;
    });
});​

感谢您帮助解决此问题。主要是数学问题,只是不知道如何解决这个问题。

最佳答案

使用 Canvas 标签,以下是来自 MDN https://developer.mozilla.org/en/Canvas_tutorial/Drawing_shapes 的示例

关于javascript - 在 JavaScript 中绘制直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11131022/

相关文章:

javascript - 找到数组中的最小值并添加类

javascript - 理解javascript多维数组的问题

python 如何再次绘制一个变量,如果它与另一个变量相同

javascript - 我可以用 jQuery 重新加载多个 div 吗?

javascript - 在箭头函数上运行 eslint 时报告意外 token "="

javascript - 在jquery中实现圆形滚动条

javascript - 如何将 .index() 的第一个元素的默认索引从 0 更改为 1

javascript - 通过 3 个圆的交点绘制三 Angular 形

python - pygame 绘图函数会留下像素宽的间隙。为什么?

javascript - ExpressJs - 如何使 api 文件在开发人员工具中不可读