箭头

时间:2018-01-02 20:46:59

标签: css css3 css-transitions css-animations

我有一个简单的箭头,如下所示:

>

并在悬停时我希望它展开为:

- >

当然没有它们之间的差距。

这必须是它们之间的过渡+动画才能流畅。这是我到目前为止所拥有的

My Work

body,
html {
  margin: 0;
  padding: 0;
  max-width: 100%;
  max-height: 100%;
  overflow-x: hidden;
  position: relative;
  background-color: black;
}

.button {
  display: inline-block;
  vertical-align: middle;
  border-radius: 50%;
  margin: 6em 0 0;
  padding: 0;
  text-align: center;
}

.left {
  display: inline-block;
  width: 3em;
  height: 3em;
  border: 0.5em solid #333;
  border-radius: 50%;
  margin-right: 1.5em;
}

.left:after {
  content: '';
  display: inline-block;
  margin-top: 0.90em;
  margin-left: 0.6em;
  width: 0.8em;
  height: 0.8em;
  border-top: 0.5em solid #333;
  border-right: 0.5em solid #333;
  -moz-transform: rotate(-135deg);
  -webkit-transform: rotate(-135deg);
  transform: rotate(-135deg);
}

.right {
  color: white;
  display: inline-block;
  width: 3em;
  height: 3em;
  border: 0.5em solid #333;
  border-radius: 50%;
  margin-left: 1.5em;
}

.right:after {
  content: '';
  display: inline-block;
  margin-top: 0.90em;
  margin-left: -0.6em;
  width: 0.8em;
  height: 0.8em;
  border-top: 0.5em solid #333;
  border-right: 0.5em solid #333;
  -moz-transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.right:hover {
  content: '';
  display: inline-block;
  margin-top: 0.90em;
  margin-left: -0.6em;
  width: 2em;
  height: 2em;
  border-top: 0.5em solid #333;
  border-right: 0.5em solid #333;
  -moz-transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
<body>
  <div class="button">
    <span class="left"></span>
  </div>
  <div class="button">
    <span class="right"></span>
  </div>
</body>

任何想法如何从这两个箭头之间实现平滑过渡和动画?

1 个答案:

答案 0 :(得分:3)

嗯,希望这个帮助。我是通过插入你正确班级的另一个伪类来做到的。

.right:hover:before {
    content: '';
    height: 0.5em;
    width: 1.4em;
    background-color: #333333;
    display: inline-block;
    transform: translate(6px,-6px);
    max-width: 2em;
    transition: 0.5s all ease-in-out;
}
.right:before {
    content: '';
    transition: 0.5s all ease-in-out;
    max-width: 0em;
}

如果插入此项,则必须删除.right:悬停。检查this pen