javascript - page.Y 返回错误值

标签 javascript jquery

我有以下 jQuery 和 JS 代码:

$(function() {
  function addMouseEvents() {
    $('img').addClass('close-overlay-active')
    var close_H = ($('.close-overlay-active').height() * 1.2);
    var close_W = ($('.close-overlay-active').width() * 1.2);
    document.addEventListener('mousemove', function(e) {
      // console.log('move');
      // console.log(e.pageX + " " + e.pageY ); 
      var mouseX = e.pageX,
        mouseY = e.pageY;

      $('.close-overlay-active')
        .css({
          top: (mouseY - close_H),
          left: mouseX - close_W
        });
    });
  }


  addMouseEvents();
});

当然,期望的行为是“x”标记略高于光标。大多数情况下确实会发生这种情况,但有时“x”出现在光标下方,靠近光标右下角,有时出现在光标下方1000px。为什么会出现这种情况? e.pageY 有时似乎返回错误的值,为什么?

有人可以解释一下这种行为吗?

<强> FIDDLE HERE

最佳答案

试试这个:

$(function() {
  function addMouseEvents() {
    $('img').addClass('close-overlay-active')
    var close_H = ($('.close-overlay-active').height());
    var close_W = ($('.close-overlay-active').width());
    document.addEventListener('mousemove', function(e) {
      // console.log('move');
      // console.log(e.pageX + " " + e.pageY );	
      var mouseX = e.pageX,
        mouseY = e.pageY;

      $('.close-overlay-active')
        .css({
          top: (mouseY - close_H),
          left: mouseX - close_W / 2
        });
    });
  }


  addMouseEvents();
});
img {
  position: absolute;
  top: 0;
  left: 0;
}
.fixed {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #b0e2ff;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="fixed">
  <img src="https://cdn3.iconfinder.com/data/icons/sympletts-free-sampler/128/circle-close-128.png">
</div>

要将光标精确定位在中心,请参阅此 FIDDLE

关于javascript - page.Y 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35192192/

相关文章:

javascript - 如何访问 NTFS 主文件表 (MFT)?

javascript - 为什么返回生成的 HTML 而不是 JSON 是一种不好的做法?或者是吗?

javascript - 当选择另一个框时,从选择框中删除 'disable' 属性

jquery - 如何删除悬停音频播放和标题

javascript - 用jquery在字符串中查找最后一个单词的第一个字母(字符串可以有多个单词)

javascript - 如何将 icomoon 图标添加到 Canvas ?

javascript - PJAX 加载后无法运行脚本

javascript - 为什么 Context 没有传递给我的 HOC

javascript - 静音我页面的任何声音。如何?

javascript - IE10 - 悬停使图像本身闪烁