У меня есть HTML-страница с несколькими элементами перетаскивания. Наши спецификации говорят, что наведение мыши на такой элемент курсором должно быть grab
, а во время перетаскивания курсор должен быть grabbing
.
Я знаю, что можно установить dropEffect
, который изменяет внешний вид курсора над областью сброса, но вариантов очень мало: copy
, move
, link
и none
- не является обычным или похожим.
Я попытался сменить курсор на Javascript и CSS, например, установить cursor: grabbing;
при запуске ondragstart
. Однако вместо перетаскивания в зону выпадения появляется указатель перемещения по умолчанию браузера.
Итак, вопрос: Что мне не хватает, чтобы показать захват курсора () во время перетаскивания?
К сожалению, я не могу использовать JQuery или другие библиотеки помощи в решении. Спасибо заранее!
var onDragStart = function(event) {
event.dataTransfer.setData("Text", event.target.id);
event.currentTarget.classList.add("being-dragged");
};
var onDragEnd = function(event) {
event.currentTarget.classList.remove("being-dragged");
};
var onDragOver = function(event) {
event.preventDefault();
};
.dropzone {
width: 500px;
height: 200px;
background-color: silver;
}
.block {
position: absolute;
background-color: pink;
margin: 10px;
border: 20px solid pink;
}
.draggable {
cursor: -webkit-grab;
cursor: grab;
}
.being-dragged {
cursor: -webkit-grabbing;
cursor: grabbing;
background-color: red;
}
<div class = "dropzone"
ondragover = "onDragOver(event);"
>
Grab and drag block around
<div class = "draggable block"
draggable = "true"
ondragstart = "onDragStart(event);"
ondragend = "onDragEnd(event);"
>
I'm draggable
</div>
</div>