Q:

Как сделать анимацию ссылки по наведению?

Всем привет. Подскажите пожалуйста как сделать анимацию ссылки как на сайте uix.me при наведении на ссылку. Что-то не выходит у меня по наведению на ссылку запускать анимацию и сама анимация хромает, не синхроно свёртывается. 
codepen

body {
  padding-left: 50%;
  padding-top: 10%;
  background: #272727;
}

.center {
  text-align: center;
  background: red;
}

.link-cross p {
  margin: 0;
  padding: 10px 0;
  text-align: center;
  background: green;
}

.link-cross {
  float: left;
  margin-top: 50px;
  background: orange;
}

.link-cross:after {
  width: 2px;
  background: rgb(203, 153, 56);
  height: 60px;
  content: "";
  position: absolute;
  margin-top: 0px;
  animation-name: crossafter;
  animation-duration: 2s;
}

.link-cross:before {
  width: 2px;
  background: rgb(203, 153, 56);
  height: 60px;
  content: "";
  position: absolute;
  margin-top: -50px;
  animation-name: crossbefore;
  animation-duration: 2s;
}

.link-cross p a {
  font-size: 18px;
  color: rgb(203, 153, 56);
  padding: 20px 0 32px 0px;
  text-decoration: none;
}

.link-cross p a:hover {
  cursor: url("http://uix.me/img/arrowCursor.svg"), auto;
  border-bottom: none;
}

@keyframes crossafter {
  from {
    height: 60px;
    margin-top: 0px;
  }
  to {
    height: 0px;
    margin-top: -34px;
  }
}

@keyframes crossbefore {
  from {
    height: 60px;
    margin-top: -50px;
  }
  to {
    height: 0px;
    margin-top: 0px;
    padding-top: 20px;
  }
}
<div class="center">center
  <div class="link-cross">
    <p>p1</p>
    <p><a href="#" title="Links">Links</a></p>
    <p>p1</p>
  </div>
</div>

A:

UPD2:
"Туда-сюда" возможно даже без анимации - достаточно задать transition, который обеспечит плавность изменения состояний:

.center {
  text-align: center;
  margin: 20px;
}
.link-cross p {
 margin: 0;
 padding: 10px 0;
 text-align: center;
}
.link-cross {
 float: left;
 margin-top: 50px;
}
.link-cross:after {
 width: 2px;
 background: rgb(203, 153, 56);
 height: 60px;
 content: "";
 position: absolute;
 margin-top: 0px;
  transition: 2s;
}
.link-cross:before {
 width: 2px;
 background: rgb(203, 153, 56);
 height: 60px;
 content: "";
 position: absolute;
 margin-top: -60px;
  transition: 2s;
}
.link-cross p a {
 font-size: 18px;
 color: rgb(203, 153, 56);
 padding: 20px 0 32px 0px;
  text-decoration: none;
}
.link-cross p a:hover {
 cursor: url("http://uix.me/img/arrowCursor.svg"),auto;
 border-bottom: none;
}
.link-cross:hover:before {
    height: 0px;
  margin-top: 0px;
}
.link-cross:hover:after {
    height: 0px;
}
<div class="center">
  <div class="link-cross">
    <p></p>
    <p><a href="#" title="Links">Links</a></p>
    <p></p>
  </div>
</div>

UPD:
Hover предполагает, что после отвода курсора свойства возвращаются в исходное состояние. И даже если задать animation-fill-mode: forwards, это не изменит ситуации.
На помощь может прийти jquery и событие mouseover (как бы половина hover'а - только наведение). Однако здесь появляется другая проблема: к псевдоэлементам :before и :after нельзя обратиться из jquery без "костылей" (поскольку этих элементов нет в DOMе).
Поэтому можно просто добавить два div'а с классами .before и .after и уже с ними провести необходимые манипуляции:

$('.link-cross').mouseover(function(){
  $('.link-cross .before').css({
    'animation-name': 'crossbefore',
    'animation-duration': '2s',
    'animation-fill-mode': 'forwards'
  });
  $('.link-cross .after').css({
    'animation-name': 'crossafter',
    'animation-duration': '2s',
    'animation-fill-mode': 'forwards'
  });
});
.center {
  text-align: center;
  margin: 20px;
}
.link-cross p {
 margin: 0;
 padding: 10px 0;
 text-align: center;
}
.link-cross {
 float: left;
 margin-top: 50px;
  position: relative;
}
.link-cross .after {
 width: 2px;
 background: rgb(203, 153, 56);
 height: 60px;
 position: absolute;
 margin-top: 0px;
  margin-left: 20px;
}
.link-cross .before {
 width: 2px;
 background: rgb(203, 153, 56);
 height: 60px;
 position: absolute;
 margin-top: -60px;
  margin-left: 20px;
}
.link-cross p a {
 font-size: 18px;
 color: rgb(203, 153, 56);
 padding: 20px 0 32px 0px;
  text-decoration: none;
}
.link-cross p a:hover {
 cursor: url("http://uix.me/img/arrowCursor.svg"),auto;
 border-bottom: none;
}
@keyframes crossbefore {
    from {
  height: 60px;
  margin-top: -60px;
 }
    to {
  height: 0px;
  margin-top: 0px;
 }
}
@keyframes crossafter {
    from {
  height: 60px;
  margin-top: 0px;
 }
    to {
  height: 0px;
 }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="center">
  <div class="link-cross">
    <p></p>
    <div class="before"></div>
    <p><a href="#" title="Links">Links</a></p>
    <div class="after"></div>
    <p></p>
  </div>
</div>

Чтобы анимация :after и :before была по наведению, надо вешать hover на .link-cross. Ну и анимацию тебе немного поправил (если, конечно, правильно понял, что именно она должна делать):

.center {
  text-align: center;
  margin: 20px;
}
.link-cross p {
 margin: 0;
 padding: 10px 0;
 text-align: center;
}
.link-cross {
 float: left;
 margin-top: 50px;
}
.link-cross:after {
 width: 2px;
 background: rgb(203, 153, 56);
 height: 60px;
 content: "";
 position: absolute;
 margin-top: 0px;
}
.link-cross:before {
 width: 2px;
 background: rgb(203, 153, 56);
 height: 60px;
 content: "";
 position: absolute;
 margin-top: -60px;
}
.link-cross p a {
 font-size: 18px;
 color: rgb(203, 153, 56);
 padding: 20px 0 32px 0px;
  text-decoration: none;
}
.link-cross p a:hover {
 cursor: url("http://uix.me/img/arrowCursor.svg"),auto;
 border-bottom: none;
}
.link-cross:hover:before {
  animation-name: crossbefore;
  animation-duration: 2s;
  animation-fill-mode: forwards;
}
.link-cross:hover:after {
  animation-name: crossafter;
  animation-duration: 2s;
  animation-fill-mode: forwards;
}
@keyframes crossbefore {
    from {
  height: 60px;
  margin-top: -60px;
 }
    to {
  height: 0px;
  margin-top: 0px;
 }
}
@keyframes crossafter {
    from {
  height: 60px;
  margin-top: 0px;
 }
    to {
  height: 0px;
 }
}
<div class="center">
  <div class="link-cross">
    <p></p>
    <p><a href="#" title="Links">Links</a></p>
    <p></p>
  </div>
</div>

