目前效果
目前元素可以拖动,但是如果鼠标不处于title位置的时候
就会造成如果再把鼠标移到title上时就会出现莫名拖动。
我的思路是给鼠标一个移动范围 就是当鼠标点击title的时候 那个鼠标就只能在title里面移动。
然后 我通过在拖动mousemove的时候进行判断e.offsetY与X
el.onmousemove = function(e){
if(move){
if(e.offsetY <= 0){
// e.offsetY = 0 //直接修改无效
//通过defineProperty报错
// Object.defineProperty(e,offsetY,{
// set:function(){
// debugger;
// offsetY = 1;
// }
// })
}
//元素位移
$(el).parent().css({'left':(elIndex + parseInt(e.pageX - moveIndex)) + 'px','margin-left':'0%','top':(elIndeY + parseInt(e.pageY - moveIndeY)) + 'px','margin-top':'0%'})
}
}
结果就是无法直接修改event里面的offsetY 。
请问如何修改event里面的参数?event也是个对象,为何无法使用defineProperty?
Object.defineProperty(e,"offsetY",{
// 1.
// 设置可写
writable:true,
// value:100,
// 2.设置访问器
// set:function(value){
// console.log(e.offsetY)
// }
// 注:1和2不能同时存在,
})
e.offsetY = 1000;//虽然能修改,但是重新打印e对象已经没有了offsetY这个属性了
所以e对象的offsetY修改显得没有作用,回到标题,或许还可以让移动元素跟随鼠标,然后在离开某个范围后不再跟随