javascript - 使用 d3.mouse(this) 拖动元素会导致元素闪烁
问题描述
我在相对定位的 div 中有一条绝对定位的引导线。当鼠标使用 d3 移动时,我需要水平移动引导线。由于 d3.event 需要将元素定位在 g 元素中,因此我尝试使用 d3.mouse 来移动引导线。但是,拖动行为非常不稳定并且闪烁过多。我似乎无法弄清楚是什么原因造成的。
var drag = d3.behavior
.drag()
.on('drag', function(event) {
dragMoveNew(this);
})
d3.select(".grid").call(drag);
function dragMoveNew(elem) {
var x = d3.mouse(elem)[0];
$(elem).css('left', x);
}
这是jsfiddle链接
解决方案
利用d3.event.x
function dragMoveNew(elem) {
//var x = d3.mouse(elem)[0];
var x = d3.event.x;
$(elem).css('left', x);
}
推荐阅读
- javascript - 用 React 编码的站点,在 GitHub Pages 上显示空白页面
- javascript - 正则表达式在 React 中不起作用(但在控制台中起作用)
- networking - 当外部端口不断变化时,natted 网络中对等点之间的 P2P
- reactjs - React Redux“无法读取未定义的属性'props'”
- javascript - 异步函数返回未定义,但 console.log 工作正常
- reactjs - 反应钩子中的反应管理数组
- loops - 是否可以循环遍历确认框中的消息数组和相应的选项数组
- android - 我想在颤振应用程序中添加字体,但 pubspec.yaml 中存在问题
- google-apps-script - Google Sheets onEdit 在具有不同列的工作表之间移动行
- reactjs - Draftjs - 如何将简单的 youtube 视频嵌入到 Draftjs?