JS高级拖拽

JS高级拖拽

在拖拽元素的时候,如果元素的内部加了文字或者图片,拖拽效果会失灵??

浏览器会给文字和图片一个默认行为,当文字和图片被选中的时候,会有一个拖拽的效果,即使我们没有人为给他添加元素,所以,是当我们点击设个元素拖拽时,有可能选中文字或图片触发浏览器天生给的那个行为,从而导致我们写的那个拖拽效果失灵

怎么解决?

div.onmousemove=function(ev){

   var ev=ev||window.event;

var _this=this;

var x=ev.clientX-this.ofsetLeft

var y=ev.clientY-this.offsetTop

if(div.setCapture){

  div.setCapture()

}else{

ev.preventDafult?ev.preventDefalut():ev.
}returnValue=false;

}

setCapture()全局捕获的方法   他是IE低版本特有的。给一个元素添加了这个方法之后,无论我们在页面的那个地方才出发了相同的事件,都会触发这个元素

新增获取元素的方法:

document.querySelector()获取的是单个元素

document.qquerySelectorAll()获取的是元素组

括号里可以写  div   .div    #div