Ho bisogno di impostare l'icona per il cursore quando un utente sta trascinando DIV (div rosso nel seguente esempio).Come cambiare l'icona del cursore durante il trascinamento in HTML5?
Ho provato diversi tentativi, incluso l'utilizzo di CSS cursor:move
e event.dataTransfer.dropEffect
senza esito positivo, poiché l'icona mostra sempre un "cerchio incrociato".
Qualche idea su come risolvere questo problema utilizzando l'API drag-and-drop HTML5?
http://jsbin.com/hifidunuqa/1/
<script>
window.app = {
config: {
canDrag: false,
cursorOffsetX: null,
cursorOffsetY: null
},
reset: function() {
this.config.cursorOffsetX = null;
this.config.cursorOffsetY = null;
},
start: function() {
document.getElementById('target').addEventListener('dragstart', function (event) {
console.log('+++++++++++++ dragstart')
this.config.cursorOffsetX = event.offsetX;
this.config.cursorOffsetY = event.offsetY;
this.adjustPostion(event);
event.dataTransfer.effectAllowed = 'move';
event.dataTransfer.dropEffect = 'move';
}.bind(this));
document.getElementById('target').addEventListener('drag', function (event) {
console.log('+++++++++++++ drag')
this.adjustPostion(event);
}.bind(this));
document.getElementById('target').addEventListener('dragend', function (event) {
console.log('+++++++++++++ dragend')
this.reset();
}.bind(this));;
},
adjustPostion: function (event) {
if (event.pageX <= 0 || event.pageY <= 0) {
console.log('skipped');
return;
}
var elm = document.getElementById('target');
elm.style.left = (event.pageX - this.config.cursorOffsetX) + 'px';
elm.style.top = (event.pageY - this.config.cursorOffsetY) + 'px';
console.log(event.pageX);
console.log(event.pageY);
}
};
</script>
che dire di evento MouseDown? –
jquery va bene? – Akshay
sì, anche le soluzioni jquery sono ok. grazie – GibboK