悬停时跟随指针的 Div

Posted

技术标签:

【中文标题】悬停时跟随指针的 Div【英文标题】:Div following pointer on hover 【发布时间】:2019-09-08 08:37:09 【问题描述】:

当您悬停某些 div 时,我想显示一个跟随指针的浮动 div,到目前为止,我发现这段带有 jquery 的代码在悬停整个身体时有效,但我想要的是在某些 div 上工作:

CSS

<div id="tail">mouse tail</div>

jQuery

$(document).bind('mousemove', function(e)
    $('#tail').css(
       left:  e.pageX + 20,
       top:   e.pageY
    );
);

我尝试了 bind 到特定的选择器,但它不起作用。

当您将鼠标悬停在 div 之外时,该 div 应该会消失,而当您将鼠标悬停在 div 中时会重新出现。

【问题讨论】:

【参考方案1】:

鼠标离开时div显示为none,进入时显示block

$('.something').bind('mousemove', function(e)
    $('#tail').css(
       left:  e.pageX + 20,
       top:   e.pageY
    );
);

$('.something').bind('mouseleave', function(e)
    $('#tail').css(
       display:  'none'
    );
);
$('.something').bind('mouseenter', function(e)
    $('#tail').css(
       display:  'block'
    );
);
#tail 
  position: fixed;
  display: none;


.something 
  width: 200px;
  height: 160px;
  background: yellow;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="tail">mouse tail</div>

<div class='something'> stuff </div>

【讨论】:

【参考方案2】:

定位特定的 div,给它们 onmouseenter/onmouseleave 事件:

#tail 
  position: fixed;


.hidden 
  display: none;
;

window.addEventListener("mousemove", function(e)
  $('#tail').css(
   left:  e.pageX + 20,
   top:   e.pageY
  );
);

var myDiv = document.getElementById('tail');
var targets = Array.from(document.getElementsByClassName('myTargets'));

targets.map(function(target)
    target.addEventListener('mouseenter', function()
        document.getElementById('tail').classList.remove('hidden')
    );
    target.addEventListener('mouseleave', function()
        document.getElementById('tail').classList.add('hidden')
    );
);

【讨论】:

以上是关于悬停时跟随指针的 Div的主要内容,如果未能解决你的问题,请参考以下文章

让 div 跟随光标在特定的 div 父级中

Div不跟随指针

跟随鼠标指针跑的div拖拽效果

VUE 监听局部滚动 设置ICON的位置跟随

JS实现跟随鼠标移动的div,和一串跟随鼠标的div,鼠标移入移出实现图片的颜色淡入淡出

如何让div跟随jQuery顺利滚动?