| <template> |
| <a :class="className" class="link--mallki" href="#"> |
| {{ text }} |
| <span :data-letters="text"/> |
| <span :data-letters="text"/> |
| </a> |
| </template> |
| |
| <script> |
| export default { |
| props: { |
| className: { |
| type: String, |
| default: '' |
| }, |
| text: { |
| type: String, |
| default: 'vue-element-admin' |
| } |
| } |
| } |
| </script> |
| |
| <style> |
| /* Mallki */ |
| |
| .link--mallki { |
| font-weight: 800; |
| color: #4dd9d5; |
| font-family: 'Dosis', sans-serif; |
| -webkit-transition: color 0.5s 0.25s; |
| transition: color 0.5s 0.25s; |
| overflow: hidden; |
| position: relative; |
| display: inline-block; |
| line-height: 1; |
| outline: none; |
| text-decoration: none; |
| } |
| |
| .link--mallki:hover { |
| -webkit-transition: none; |
| transition: none; |
| color: transparent; |
| } |
| |
| .link--mallki::before { |
| content: ''; |
| width: 100%; |
| height: 6px; |
| margin: -3px 0 0 0; |
| background: #3888fa; |
| position: absolute; |
| left: 0; |
| top: 50%; |
| -webkit-transform: translate3d(-100%, 0, 0); |
| transform: translate3d(-100%, 0, 0); |
| -webkit-transition: -webkit-transform 0.4s; |
| transition: transform 0.4s; |
| -webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); |
| transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); |
| } |
| |
| .link--mallki:hover::before { |
| -webkit-transform: translate3d(100%, 0, 0); |
| transform: translate3d(100%, 0, 0); |
| } |
| |
| .link--mallki span { |
| position: absolute; |
| height: 50%; |
| width: 100%; |
| left: 0; |
| top: 0; |
| overflow: hidden; |
| } |
| |
| .link--mallki span::before { |
| content: attr(data-letters); |
| color: red; |
| position: absolute; |
| left: 0; |
| width: 100%; |
| color: #3888fa; |
| -webkit-transition: -webkit-transform 0.5s; |
| transition: transform 0.5s; |
| } |
| |
| .link--mallki span:nth-child(2) { |
| top: 50%; |
| } |
| |
| .link--mallki span:first-child::before { |
| top: 0; |
| -webkit-transform: translate3d(0, 100%, 0); |
| transform: translate3d(0, 100%, 0); |
| } |
| |
| .link--mallki span:nth-child(2)::before { |
| bottom: 0; |
| -webkit-transform: translate3d(0, -100%, 0); |
| transform: translate3d(0, -100%, 0); |
| } |
| |
| .link--mallki:hover span::before { |
| -webkit-transition-delay: 0.3s; |
| transition-delay: 0.3s; |
| -webkit-transform: translate3d(0, 0, 0); |
| transform: translate3d(0, 0, 0); |
| -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); |
| transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); |
| } |
| </style> |