CSSのhoverやfocusで発動するボタンのエフェクトのサンプルを用意しました。
デザインで調整をすることが多いため、わかりやすくシンプルなCSSにしています。
ボタンサンプルHTML
<a href="#" class="demo_btn"><span class="demo_gradient"></span>ボタンサンプル</a>
spanの要素が文字の背景となり、グラデーションの色を斜めにつけています。
アニメーションの動きは、縦長の長方形になっているspanを上下に移動させています。
CSS
.demo_btn{
display: block;
width: 200px;
max-width: 100%;
margin: 0 auto;
overflow: hidden;
position: relative;
transform: translatez(0);
text-decoration: none;
text-align: center;
box-sizing: border-box;
font-size: 18px;
padding: 26px;
border: 1px solid #DDD;
color: #1a1a1a;
transition: all 0.5s ease-in-out 0s;
}
.demo_btn .demo_gradient {
display: block;
position: absolute;
top: 0;
right: 0;
width: 100%;
height: 800%;
bottom: auto;
margin: auto;
z-index: -1;
background: #6086c1;
background: linear-gradient(45deg, #333 0%, #000 49%, #FFF 50%, #EEE 100%);
transition: all 0.5s ease-in-out 0s;
transform: translateY(0%);
}
.demo_btn:hover,
.demo_btn:focus {
text-decoration: none;
border: 1px solid #72b4d3;
color:#FFF;
}
.demo_btn:hover .demo_gradient,
.demo_btn:focus .demo_gradient {
transform: translateY(-85%);
}
spanが z-index = -1 で、overflow ではみ出た部分が隠れています。
位置や色を調整するといろんなバリエーションを作ることができます。