如何使用javascript拖放避免闪烁效果
我使用以下javascript(与jQuery一起)处理我正在编写的脚本上的拖放操作:如何使用javascript拖放避免闪烁效果,javascript,jquery,drag-and-drop,Javascript,Jquery,Drag And Drop,我使用以下javascript(与jQuery一起)处理我正在编写的脚本上的拖放操作: jsc.ui.dragging = false; jsc.ui.drag_element = {}; $(".drag-target").mousedown(function() { jsc.ui.drag_element = $(this); jsc.ui.dragging = true; }); $("html").mousemove(function(e) { if(jsc.u
jsc.ui.dragging = false;
jsc.ui.drag_element = {};
$(".drag-target").mousedown(function() {
jsc.ui.drag_element = $(this);
jsc.ui.dragging = true;
});
$("html").mousemove(function(e) {
if(jsc.ui.dragging) {
jsc.ui.drag_element.css({"position": "absolute", "top": e.clientY - 1, "left": e.clientX - 1, "z-index": "100"}); // - 1s are due to IE not leaving go otherwise
$("#overlay").show(); // Overlay stops text beneath being selected. TODO Stop current elements text being selected.
}
});
$(".drag-target").mouseup(function() {
if(jsc.ui.dragging) {
jsc.ui.dragging = false;
jsc.ui.drag_element.css("z-index", "98");
$("#overlay").hide();
}
});
但是,当拖动对象时,对象内的文本具有闪烁的选择,即,随着元素的移动,对象被打开或关闭。有没有办法防止这种情况发生,或者隐藏其影响?我认为影响的程度取决于您的硬件和视频驱动程序。为了完全避免这种情况,您可以只绘制一个矩形,然后在释放鼠标按钮时重新绘制窗口。我认为效果的程度取决于您的硬件和视频驱动程序。为了完全避免这种情况,您可以只绘制一个矩形,然后在释放鼠标按钮时重新绘制窗口。是否有不使用的原因?您的代码如下所示:
$(".drag-target").draggable();
您至少应该检查它是如何构建的,它可能会帮助您解决闪烁问题。不使用它有什么原因吗?您的代码如下所示:
$(".drag-target").draggable();
您至少应该检查它是如何构建的,它可能会帮助您解决闪烁问题。jQuery UI是模块化的吗?如果是,原因是对jqueryui缺乏了解。但是,我目前没有使用jQuery UI,因此为一个部分添加一个额外的框架似乎有些过分,如果我需要使用整个框架,原因是性能问题。完全模块化,您可以在此处选择所需内容:。27k用于jquery.ui.core和draggable,在我看来没有那么大。。。试一试,然后决定是保留它,还是尝试解决这个忽隐忽现的问题;)jQueryUI是模块化的吗?如果是,原因是对jqueryui缺乏了解。但是,我目前没有使用jQuery UI,因此为一个部分添加一个额外的框架似乎有些过分,如果我需要使用整个框架,原因是性能问题。完全模块化,您可以在此处选择所需内容:。27k用于jquery.ui.core和draggable,在我看来没有那么大。。。试一试,然后决定是保留它,还是尝试解决这个忽隐忽现的问题;)