首頁  >  文章  >  web前端  >  jquery如何實現拖曳時每次mousemove的時候都有一個向左跳動?

jquery如何實現拖曳時每次mousemove的時候都有一個向左跳動?

黄舟
黄舟原創
2017-06-28 10:35:581664瀏覽

jquery寫了一個拖拽,但是每次mousemove的時候,總是有一個向左跳動,怎麼能沒有這個跳動?

.wrap{
width:328px;
position: absolute;
left:50%;
top:30%;
margin-left:-164px; //应该是这个margin-left造成的
padding:10px;
background:#eeeeee;
border-radius: 10px;
} 
//js
$('.wrap').on('mousedown',function(e){
var _this=$(this)
disX=e.clientX-$(this).offset().left;
disY=e.clientY-$(this).offset().top;
$(document).on('mousemove',function(e){
_this.css('left',e.clientX-disX)
_this.css('top',e.clientY-disY)
}); $(document).on('mouseup',function(){ $(this).unbind('mousemove');
})
})

divItem子元素在divBox的上面,
當滑鼠移到divItem上的時候,已經是從divBox移動到另一個元素了,
先觸發divBox的mouseout事件,再觸發divItem的mouseover事件。

你這樣的需求是無法直接實現的,看能否換個方式,來達到你要的效果。
1、可以在divItem的mouseover事件裡面呼叫divBox的mouseover所呼叫的方法。
2、你的divItem是用來做什麼的,能否用divBox的背景圖片取代。
3、或把所有div的position:absolute,然後把divBox的z-index設定為大於divItem的z-index,
再把divBox設定為半透明的形式。

看了半天代碼沒問題,後來css去掉了 就ok了 再後來去掉margin-left:-164px或者改為非負數;也是ok的

以上是jquery如何實現拖曳時每次mousemove的時候都有一個向左跳動?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn