Javascript 用鼠标移动div,其内容可点击?

Javascript 用鼠标移动div,其内容可点击?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个随鼠标光标移动的Div。在DIV中,我有两个链接,我也想单击它们,但DIV是可移动的,它会随着鼠标移动,因此当我想单击链接(在该DIV中)时,DIV会远离光标 我的代码: <div class="myDiv"> Click to View<br> <a href="#linkA">Link A</a><br> <a href="#linkB">Link B</a> </div>

我有一个随鼠标光标移动的Div。在DIV中,我有两个链接,我也想单击它们,但DIV是可移动的,它会随着鼠标移动,因此当我想单击链接(在该DIV中)时,DIV会远离光标

我的代码:

<div class="myDiv">
  Click to View<br>
  <a href="#linkA">Link A</a><br>
  <a href="#linkB">Link B</a>
</div>

$(document).bind('mousemove', function(e){
  $('.myDiv').css({
     left:  e.pageX + 50,
     top:   e.pageY
  });
});

单击以查看

$(document).bind('mousemove',函数(e){ $('.myDiv').css({ 左:e.pageX+50, 顶部:e.pageY }); });

很抱歉我的代码不可读,但它可能会给你一个想法

var cursorPos = {
    x: 0,
    y: 0,
    offset: 50
};

$(document).bind('mousemove', function(e){
    var myDiv = $(".myDiv"),
      myDivData = {
        width: myDiv.innerWidth(),
        height: myDiv.innerHeight(),
        posX: myDiv.offset().left,
        posY: myDiv.offset().top,
      };

    // Check if the cursor is out of a given area
    if (!((e.pageX >= (myDivData.posX - cursorPos.offset) && e.pageX <= (myDivData.posX + myDivData.width + cursorPos.offset)) && 
          (e.pageY >= (myDivData.posY - cursorPos.offset) && e.pageY <= (myDivData.posY + myDivData.height + cursorPos.offset)))
       ) {

        // Check if it moved horizontally
        if (e.pageX > (myDivData.posX + myDivData.width)) {
            myDiv.css({
                left:  (e.pageX - myDivData.width - cursorPos.offset),
            });
        }
        else if (e.pageX < myDivData.posX)
            myDiv.css({
                left:  e.pageX + cursorPos.offset,
            });

        // Check if it moved vertically
        if (e.pageY > (myDivData.posY + myDivData.height))
            myDiv.css({
                top: (e.pageY - myDivData.height - cursorPos.offset)
            });
        else if (e.pageY < myDivData.posY)
            myDiv.css({
                top:   e.pageY + cursorPos.offset
            });

    }
    cursorPos.x = e.pageX;
    cursorPos.y = e.pageY;
});
var cursorPos={
x:0,,
y:0,
抵销:50
};
$(document).bind('mousemove',函数(e){
var myDiv=$(“.myDiv”),
myDivData={
宽度:myDiv.innerWidth(),
高度:myDiv.innerHeight(),
posX:myDiv.offset().left,
posY:myDiv.offset().top,
};
//检查光标是否超出给定区域
如果(!((e.pageX>=(myDivData.posX-cursorPos.offset)和&e.pageX=(myDivData.posY-cursorPos.offset)和&e.pageY(myDivData.posX+myDivData.width)){
myDiv.css({
左:(e.pageX-myDivData.width-cursorPos.offset),
});
}
else if(e.pageX(myDivData.posY+myDivData.height))
myDiv.css({
顶部:(e.pageY-myDivData.height-cursorPos.offset)
});
else if(例如pageY

选中此项

您真正想要的行为是什么?当鼠标光标移动到DIV的方向时,“mousemove”行为停止。需要在DIV周围定义一个区域,所以当光标位于该区域时,可移动的行为停止,光标进入该DIV并单击链接。离开该区域后,DIV应再次随光标移动。类似的内容?@nevermind谢谢,很好。但不完全是这样,实际上我希望DIV 50px位于光标后面,当cursor靠近DIV的区域,DIV停止移动。光标单击链接并离开DIV区域,但当光标越过50像素的距离时,DIV再次开始追逐它。嗨@nersoh,先生,请看我的演示,我想在其中添加过渡或平滑效果。