2017-05-15 135 views
-1

我在jQuery的mousemove事件新的,這裏是我的代碼鼠標移動工作不正常

<div id="a1" style="width:100%;height:100%;top:0px;left:0px; position:absolute"> 
    <div id="tracker1"> 
    </div> 
</div> 


$(a1).mousemove(function(event) { 
    var x = event.pageX; 
    var y = event.pageY; 
    var absolutePositionx = x - $('#a1').offset().left; 
    var absolutePositiony = y - $('#a1').offset().top; 

    $("#tracker1").css({ 
    left: absolutePositionx, 
    top: absolutePositiony 
    }); 
}); 

JSFIDDLE

的問題是,當我在邊境緩慢地移動鼠標,就有機會跟蹤器(紅點)將移出元素,這很奇怪,不應該發生。爲什麼mousemove事件在光標超出指定元素時仍然會觸發? enter image description here 任何幫助讚賞!

+2

代碼感謝! –

+0

@Jonasw已經在那裏,不熟悉stackoverflow – MMzztx

回答

5

發生這種情況是因爲點或跟蹤器嵌套在跟蹤鼠標移動的位置,因此,當您移動速度緩慢時,此鼠標正在點上移動,從而觸發鼠標移動事件。你能解決這個問題是這樣的:

<!-- change this --> 
<div class="a1" id="a1" style="width:100%;height:100%;top:0px;left:0px; position:absolute"> 
    <div id="tracker1"> 
    </div> 
</div> 

<!-- to this --> 
<div class="a1" id="a1" style="width:100%;height:100%;top:0px;left:0px; position:absolute"> 
</div> 

<div id="tracker1"> 
</div> 

<!-- for all 3 instances --> 

https://jsfiddle.net/amw2oou9/1/

+0

非常感謝,我明白了! – MMzztx

0

將屬性overflow: hidden添加到.a1.b1.c1爲我修復它!

+0

感謝您的迴應!:) – MMzztx

+0

因爲跟蹤器將被隱藏,一旦它移動到父框外。 – Christoph

+0

保留我的編輯,因爲它增加了一些解釋。 – Christoph