我可以在悬停时将元素带到另一个兄弟元素吗? [CSS动画]

时间:2018-04-28 21:19:04

标签: javascript html css animation

我希望元素在元素悬停时移动到另一个元素。 这些元素是兄弟姐妹,因为我希望那个元素覆盖另一个元素。

以下HTML和CSS给我带来了不错的结果。 但是我不想使用“width”和“left”的常量值来为它们设置动画。 有没有办法将移动元素放在悬停元素上而不使用常量位置值?

nav .animation {
  position: absolute;
  height: 100%;
  top: 0;
  z-index: 0;
  transition: all .5s ease 0s;
  border-radius: 8px;
}

nav .start-home,
a:nth-child(1):hover~.animation {
  width: 105px;
  left: 0;
  background-color: #1abc9c;
}

nav .start-blog,
a:nth-child(2):hover~.animation {
  width: 105px;
  left: 105px;
  background-color: #e74c3c;
}

nav .start-projects,
a:nth-child(3):hover~.animation {
  width: 135px;
  left: 210px;
  background-color: #3498db;
}

nav .start-about,
a:nth-child(4):hover~.animation {
  width: 115px;
  left: 345px;
  background-color: #9b59b6;
}

nav .start-contact,
a:nth-child(5):hover~.animation {
  width: 130px;
  left: 460px;
  background-color: #e67e22;
}


nav {
  margin: 27px auto 0;
  position: relative;
  display: table;
  height: 50px;
  background-color: #34495e;
  border-radius: 8px;
  font-size: 0;
  white-space: nowrap;
}
nav a {
  line-height: 50px;
  padding: 2px 30px;
  height: 100%;
  font-size: 15px;
  display: inline-block;
  position: relative;
  z-index: 1;
  text-decoration: none;
  text-transform: uppercase;
  text-align: center;
  color: white;
  cursor: pointer;
}
<nav>
  <a href="#">Home</a>
  <a href="#">Blog</a>
  <a href="#">Projects</a>
  <a href="#">About</a>
  <a href="#">Contact</a>
  <div class="animation start-home"></div>
</nav>

1 个答案:

答案 0 :(得分:0)

我只能用CSS找到方法,所以我使用了JavaScript并修改了元素的样式。 这是我不想做的事情。 如果您只知道如何使用CSS,请告诉我。