javascript - 可拖动的 div 在拖动时留下一条线迹,可能吗?

标签 javascript jquery html jquery-ui jquery-ui-touch-punch

我目前正在尝试制作一种在线教练战术板,您可以在其中拖动假扮成球员的 divs 来展示阵容或特定战术。 我正在使用 Touch Punch对于拖动,它在 PC、平板电脑和智能手机(最后两个是目标平台)上运行良好。

我现在想尝试实现的是,当您按下一个按钮时,拖动球员后的轨迹开始绘制线条,这是特定球员应该如何奔跑的模式。 这意味着您首先要将玩家置于起始位置,然后使用按钮启动直线轨迹,然后开始在运行模式中四处拖动他们,以便显示。

我目前在 <canvas> 中绘制线条,但这意味着您将线与拖动玩家分开,这有时会变得拥挤,并且很容易开始拖动 div 而不是开始在 div 旁边开始绘制一条线,尤其是在触摸屏上。

有人知道这是否可行吗?

最佳答案

谢谢 raam86,没想到会这么简单。

如果有人走这条路,我就是这样解决的:

$( "[id^=home]" ).draggable({
        // options...
        start: function(event,ui){
            context.strokeStyle = 'Blue';
            $( this ).addClass("dragging");
            if (drawWhenDragging){
                context.beginPath();
                context.moveTo(ui.position.left+$(this).width()/2, ui.position.top+$(this).width()/2);
            }
        },
        drag: function(event,ui){
            $( this ).addClass("dragging");
            if (drawWhenDragging){
                context.lineTo(ui.position.left+$(this).width()/2, ui.position.top+$(this).width()/2);
                context.stroke();
            }
        },
        stop: function(event,ui){
            $( this ).removeClass("dragging");
            if (drawWhenDragging){
                context.closePath();
            }
        }
    });

关于javascript - 可拖动的 div 在拖动时留下一条线迹,可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20777040/

相关文章:

javascript - 我的函数返回值得到一个空字符串

javascript - Webpack 语法错误 : Unexpected token =>

javascript - 从 JavaScript 返回 false 不会停止 HTML 页面的执行

html - 使用纯CSS创建三级菜单

javascript - 使用 jQuery 滚动到某个元素

php - 使用 PHP 组织日期格式

html - 如果不需要,如何在隐藏滚动条的 CSS 中创建具有固定页眉和页脚的全高内容部分

javascript - 在下拉菜单上使用箭头键滚动 - vuejs

javascript - 带 setInterval 的幻灯片

jquery - jQuery 中的多种变换动画