我有一个具有一些可拖动元素的HTML页面。我们的规格说鼠标悬停在这样的元素上光标必须是是grab
,并且在拖动光标期间必须是是grabbing
。自定义光标,拖放不带库的HTML元素
我知道这是可以设置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>
它应该是纯'JavaScript'还是你会使用'jQuery'呢?如果你使用'jQuery',那么你会使用'jQuery UI'' Draggable' Plugin? – UfguFugullu
Plain JS。 JQuery不可用,很抱歉。 – Travenin
你将不得不使用假游标;跟随鼠标的img。这将与本机图标显示,所以你需要使它看起来恭维,而不是与它竞争。 afaik,那最接近你会得到。 – dandavis