首页新闻找找看学习计划

请问实现拖动的时候如何让鼠标始终处于拖动元素里面

0
悬赏园豆:50 [已解决问题] 解决于 2019-08-30 17:58

目前效果

目前元素可以拖动,但是如果鼠标不处于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?

KizeBOOM_La的主页 KizeBOOM_La | 初学一级 | 园豆:89
提问于:2019-08-08 21:53
< >
分享
最佳答案
0

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修改显得没有作用,回到标题,或许还可以让移动元素跟随鼠标,然后在离开某个范围后不再跟随

收获园豆:50
亲吻冰封火焰 | 菜鸟二级 |园豆:237 | 2019-08-09 10:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册