悬停链接时,将Div水平移动到当前悬停的链接位置。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了悬停链接时,将Div水平移动到当前悬停的链接位置。相关的知识,希望对你有一定的参考价值。

我有一个有5个链接的菜单,每个链接都有相同的类和ID "navbarLink",我还有另一个div(这是一个倾斜的形状)"#hoveredLink",它从0移动到实际悬停链接的位置(在背景中),我希望这个形状占据悬停链接的整个宽度(因为它们的宽度不同,因为每个链接都有或多或少的文字)。所以我的目的是将这个 "#hoveredLink "水平移动,以达到 "navbarLink "实际悬停的位置。

还没有成功!

window.onload = function() {
    var bsDiv = document.getElementById("hoveredLink");
    var x;

    $("navbarLink").hover(function() {
        x = document.getElementById("hoveredLink").left;
        bsDiv.style.left = x + "px";
    });
}

谁能告诉我,我在这里做错了什么?

谢谢!我有一个有5个链接的菜单,我想把它做成一个 "导航栏"。

答案

它是这样的吗?如果它不是,把一个例子html

var menu = document.getElementById("menu");
var up = document.getElementById("up");

  menu.onmouseover = function(e){
    if(e.target.nodeName != "SPAN"){ return; } // If everything is DIV, you can choose another condition to separate the children from the father.
    
    up.style.left = e.target.offsetLeft - 10 + "px";
    up.style.width = e.target.offsetWidth + 20 + "px";
  
  };
  
  menu.onmouseleave= function(e){ // Being the event in the parent is not lost between son and son
  
    up.style.width = 0 + "px";
    up.style.left = 0 + "px";
    
  };
.content{
  position: relative;
}
#up{
  position: absolute;
  top: 0px;
  left: 0px;
  width: 0px;
  height: 3px;
  background-color: red;
transition: all 0.25s;
}
#menu > span{
  margin: 10px;
}
<div class="content">
  <div id="up"></div>
  <div id="menu">
    <span>Link 1</span>
    <span>Link_Link 2</span>
    <span>Link3</span>
    <span>Link 4...</span>
    <span>L5</span>
  </div>
</div>

以上是关于悬停链接时,将Div水平移动到当前悬停的链接位置。的主要内容,如果未能解决你的问题,请参考以下文章

html/css:鼠标悬停时通过链接增加字体大小的位置移动

如何让我的 <ul> 悬停在同一个位置开始?

使用移动设备的悬停选择器调整链接/ div 的大小

阻止'Div'改变位置'悬停'

如何使 img 和 text 链接都链接到同一个地方,并且在悬停时都变得活跃,而与我悬停在哪个位置无关?

需要时移动 div