javascript - 如果我移动鼠标,绝对 Div 会一直闪烁

标签 javascript jquery html css

这是我到目前为止所取得的成就:

enter image description here

如果我将鼠标移动到红色图像的任意位置,div 将出现在我的鼠标指针上。

这是我的代码:

HTML

<div id="test" class="cclass" style="border:solid">
name:blahblah <br />
name:blahblah <br />
name:blahblah <br />
</div>

CSS

.cclass {
position:absolute;
background-color:orange;
height:125px;
width:175px;
top:0px;
left:0px;
display:none;
}

JQuery

$('img#sorc').on('mousemove mouseleave',function (e) {


     if (e.type == 'mouseleave'){
     $('div#test').css('display', 'none');

     }                

     else {

     $('div#test').css({

           'display': 'block',
           'top': e.pageY,
           'left': e.pageX

           });
         }
});

它按预期工作,但问题是,div 一直在闪烁。我应该怎么做才能避免这种情况?

编辑:

这是我的红框的代码:

<img id="sorc" src="~/photos/test.jpg" />

最佳答案

在光标和框位置之间提供一点间隙可以解决问题。在下面的代码片段中,我在 X 轴上设置了一个 15px 间隙。

$('img#sorc').on('mousemove mouseleave', function(e) {
  if (e.type == 'mouseleave') {
    $('div#test').css('display', 'none');
  } else {
    $('div#test').css({
      'display': 'block',
      'top': e.pageY,
      'left': e.pageX + 15
    });
  }
});
.cclass {
  position: absolute;
  background-color: orange;
  height: 125px;
  width: 175px;
  top: 0px;
  left: 0px;
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img id="sorc" src="http://placehold.it/350x150" />
<div id="test" class="cclass" style="border:solid">
  name:blahblah
  <br />name:blahblah
  <br />name:blahblah
  <br />
</div>

关于javascript - 如果我移动鼠标,绝对 Div 会一直闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32775518/

相关文章:

javascript - 如果不发送数据,Ajax 请求将无法工作

javascript - 将字符串中的十六进制颜色代码替换为彩色 html 标签

javascript - 我的 jQuery 代码在本地系统中不起作用,但在 jsFiddle 中起作用

javascript - 获取点击的 li 中第一个 div 的 id

android - 如何禁用从移动浏览器上传文件的相机选项?

javascript - Yii2 的 GridView CheckboxColumn 的回调

javascript - 如何从多个元素中获取值

php - 如何隐藏 native php 中我网站上链接的其他网站的链接

jquery - rollOver 上的 CSS 叠加

javascript - 基于选项卡的 Web 浏览的最佳方法