【问题标题】:How to prevent default cursor style in Dart, Dartium如何防止 Dart、Dartium 中的默认光标样式
【发布时间】:2013-03-13 14:53:13
【问题描述】:

我试图阻止在 Dart 中拖动的默认光标样式。在 onDragStart 方法中,我将光标样式设置为“移动”,然后在 onDragEnd 中恢复为默认值:

onDragStart(e) {
    prevCursor = placeholder.style.cursor;      
    placeholder.style.cursor = 'move';
}

onDragEnd(e) {
    placeholder.style.cursor = prevCursor;
}

拖动时,光标仍默认为“不允许”样式。我尝试了很多方法来防止这种情况,例如在 onDragStart 方法中阻止默认设置为 onSelectStart,这被推荐为 javascript 中 chromium 的修复,但在 Dart 中不起作用:

document.onSelectStart.listen( (e) {
    e.preventDefault();
    return false; 
});

我也尝试在 CSS 中设置默认值,这不是我想要的,但它仍然不起作用:

a:drag {
 cursor:move;
}

有什么建议吗?

【问题讨论】:

  • 请记住,对于 Web 应用程序来说,Dart 如何处理光标(或者基本上是其他任何东西)并没有什么特别之处。您可能想在常规的 ol' CSS/Javascript 网站上搜索解决此问题的方法。将您找到的任何解决方案映射到您的 Dart 代码应该很容易。

标签: dart dartium


【解决方案1】:

嗯...只是一个猜测,但也许尝试看看您是否还需要处理 onDragEnter?

【讨论】:

    【解决方案2】:

    如果其处理程序取消了拖入事件等,则放置目标将光标图标设置为“不允许”。
    为拖放区编写处理程序是最简单的解决方案。

    为了规避这个问题,可能会捕获鼠标按下事件、鼠标移动事件等并用于移动元素,就像我在这里所做的那样:Moving elements by dragging in Dart

    这个人详细解释了相关问题:http://mereskin.github.io/dnd/

    有点无关紧要,但在某些浏览器中,只有在拖动元素时才使用默认光标图标,并且无法更改该默认值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      • 2022-01-03
      相关资源
      最近更新 更多