拖放时更改鼠标光标

Posted

技术标签:

【中文标题】拖放时更改鼠标光标【英文标题】:Change Mouse Cursor While Drag and Drop 【发布时间】:2018-12-01 20:56:57 【问题描述】:

我有一个 DOM 元素,我想将“项目”放入其中。我想通过更改光标图标给用户视觉反馈。但是当鼠标按钮被按住时,光标不会改变。如果我不移动鼠标按钮,它会改变。但当我按住按钮时不会。为什么?如何为用户实现所需的光标反馈?我正在使用谷歌浏览器。

<html>
    <head>      
        <script type="text/javascript">         
            function Document()
            
                var that = document.createElement("div");
                that.style.backgroundColor = "#80ff80";
                that.style.border = "1px solid black";
                that.style.height = "90%";
                that.style.width = "50%";
                that.onmousemove = function (event)
                
                    //console.log(event.offsetX + ", " + event.offsetY);
                    if (Math.random() < 0.5)
                        that.style.cursor = "not-allowed";
                    else
                        that.style.cursor = "move";
                    return false;
                
                return that;
            

            function onLoadPage()
            
                var doc = new Document();
                document.body.appendChild(doc);
            

        </script>
    </head>
    <body onload="onLoadPage()" />
</html>

1) 将鼠标移到 div 上。它会随机更改光标图标。 2) 按下鼠标按钮并将鼠标移到 div 上。它会保留最后一个图标,直到您释放鼠标按钮。

编辑: Chrome 的控制台可能会产生此问题。当我隐藏“开发人员工具”时,光标更改似乎效果很好。当我启用“开发工具”,将选项卡更改为任何选项卡并返回时,按住鼠标按钮光标不会改变。

【问题讨论】:

您是否将新创建的元素附加到 DOM 中? 是的,当然。绿色的款式就是看看在哪里,试试看。 我can't reproduce这个问题..? 好的。 Firefox 似乎没有这个问题。我正在使用 Chrome。 @Teemu 感谢您的宝贵时间。我猜开发工具会产生问题,请参阅编辑。 【参考方案1】:

我无法重现您的问题,但我遇到了以下链接,该链接还表明除 Firefox 之外的所有浏览器都存在错误。这是一个旧链接,但可能会有所帮助。

https://github.com/RubaXa/Sortable/issues/246

【讨论】:

以上是关于拖放时更改鼠标光标的主要内容,如果未能解决你的问题,请参考以下文章

UWP - 有没有办法在退出 ListView 时更改鼠标光标而不在拖放期间触发事件?

使用更改的 CSS 光标属性更新鼠标光标而不移动鼠标

拖放DataGrid中下降,拖动过程中自定义光标不工作

鼠标左键按下时如何更改鼠标光标?

鼠标按下时CSS光标更改不起作用

拖动桌面文档时更改鼠标光标