24

在 HTML5 中将元素拖动到浏览器客户端区域时,如何将光标更改为我想要的任何光标?

到目前为止,我只能在拖动时显示默认光标(除了不支持拖放的地方没有光标)。

我不是在谈论以下任何内容:

  • 用于event.dataTransfer.setDragImage()在光标旁边显示图像

  • 用于event.dataTransfer.dropEffect在光标旁边显示副本或链接符号,或将光标更改为无符号

  • 在 Firefox 中,使用event.dataTransfer.mozCursor, 因为它只能执行默认的系统行为,或者显示箭头光标,这两者都没有帮助(此外,我想要跨浏览器支持,虽然我主要针对 Chrome)

我尝试了许多其他技巧,包括使用 CSS:hover:focus以及许多 JavaScript 技巧,但都无济于事。

谢谢你的帮助。

4

5 回答 5

0

这是一个仅限 CSS 的解决方案!

element:hover:active {
cursor: type;
}

只需将元素选择器放在元素所在的位置并指定一个光标。这有点 hack,因为它不检测拖动,只同时悬停和单击。

于 2021-05-06T15:28:25.200 回答
0

你可以用css改变它

#buttonId:hover {
    cursor: value;
}

你可以在这里找到多个光标值:https ://www.w3schools.com/cssref/pr_class_cursor.asp

于 2021-06-14T01:53:19.550 回答
0

为此,您可以使用 CSS,如下所示:

#buttonID:hover:active {
cursor: *cursor-type*;
}

您可以使用几种游标类型,它们是:

帮助;- 将显示默认光标,旁边有一个小问号

等待;- 将显示您的操作系统的默认加载光标动画

十字准线;- 会给你一个十字光标

不允许;- 将为您的光标显示一个图标

放大;- 将显示一个带有加号的放大镜

; - 将展示一只手,我认为这个最适合您的需求。

这些都是cursor:我知道的属性。你可能会发现一些有用的东西。

于 2021-11-26T10:16:02.633 回答
0

嗨,通过使元素可拖动来试试这个需要添加给定的代码

<script>
function dragstart_handler(ev) {
// Add the target element's id to the data transfer object
ev.dataTransfer.setData("text/plain", ev.target.id);
}

window.addEventListener('DOMContentLoaded', () => {
// Get the element by id
const element = document.getElementById("p1");
// Add the ondragstart event listener
element.addEventListener("dragstart", dragstart_handler);
});
</script>

<p id="p1" draggable="true">This element is draggable.</p>
于 2020-12-04T15:10:51.117 回答
0

所以你想在拖动元素时更改光标?

$('YourElement').draggable({
     cursor: "crosshair"
});

有关更多信息,请参见http://api.jqueryui.com/draggable/#option-cursor

于 2017-03-22T15:59:16.127 回答