Bir kullanıcı DIV'yi sürüklerken (aşağıdaki örnekte kırmızı boşluk) imleç ikonunu ayarlamalıyım. CSS cursor:move
ve event.dataTransfer.dropEffect
'u kullanma da dahil olmak üzere birkaç deneme yapmayı denedim, çünkü simge her zaman "çapraz daire" gösteriyor.HTML5’te sürüklerken imleç simgesi nasıl değiştirilir?
HTML5 sürükle ve bırak API'sini kullanarak bu sorunu nasıl çözebilirim?
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>
neyi mousedown olay hakkında mousemove? –
Jquery tamam mı? – Akshay
evet jquery çözümleri de tamam. teşekkürler – GibboK