具体来说,比如用户拖动滑块的手柄,由于鼠标不再悬停在手柄上,光标瞬间(因为捕捉)或较长时间(因为离轴拖动)会从手柄CSS中指定的光标发生变化。我创建了一个 示例 来说明这个问题。
我该如何避免这种情况?
编辑
Stephen Thomas 的答案不够充分,因为不同的元素可能有不同的图标,例如水平滑块处理程序获取 ew-resize,垂直滑块处理程序获取 ns-resize,我还没有找到一种可靠确定要“锁定”光标的方法。
第二次编辑
通过对 Jacob Grey 的答案进行一些微小的修改,我找到了一些符合我的需求的东西。我的调整添加了一个 CSS 规则,我可以在
我该如何避免这种情况?
编辑
Stephen Thomas 的答案不够充分,因为不同的元素可能有不同的图标,例如水平滑块处理程序获取 ew-resize,垂直滑块处理程序获取 ns-resize,我还没有找到一种可靠确定要“锁定”光标的方法。
第二次编辑
通过对 Jacob Grey 的答案进行一些微小的修改,我找到了一些符合我的需求的东西。我的调整添加了一个 CSS 规则,我可以在
<body>
上切换,以强制所有后代元素继承其光标。 这个示例 显示了 Jacob Grey 的解决方案和我的调整解决方案之间的行为差异。<style> body.dragging { cursor: inherit !important; } </style>
<script>
var disableDragCursorOverride = function() {
$("body").removeClass("dragging");
$("html").css("cursor","auto")
.off("mouseup", disableDragCursorOverride);
};
$(selectorForDraggable).on("mousedown",function(e){
var cursor = $(e.target).css("cursor");
$("body").addClass("dragging");
$("html").css("cursor",cursor)
.on("mouseup", disableDragCursorOverride);
});
</script>