[CSS初級]@keyframe プロパティで動きのあるボタンを!
@keyframesとは?
CSS @ 規則の @keyframes は、アニメーションの流れに沿ったキーフレーム(または中間地点)のスタイルを定義することによって、一連のCSSアニメーションの中間ステップを制御します。これにより、アニメーションの中間ステップをCSS Transitionsよりも詳細に制御できます。
@keyframes – CSS: カスケーディングスタイルシート | MDN
サンプルソース
See the Pen 【@keyframe プロパティ】CSSでボタンが動く! by BST株式会社 (@BST-web) on CodePen.
HTMLの記述
<a href="" class="button size-up">
<div class="button--content">
<div class="button--text">
もっと見る
</div>
<div class="button--icon--wrap">
<i class="button--icon"></i>
</div>
</div>
</a>
CSSの記述
/*リセット*/
body {
display: flex;
align-items: center;
justify-content: center;
margin-top: 6rem;
}
.size-up {
scale: 1.66;
}
a {
text-decoration: none;
}
/*ボタンスタイル*/
.button {
font-size: 14px;
font-weight: 600;
font-family: "Noto Sans JP", sans-serif;
display: block;
width: 225px;
background: mediumblue;
color: white;
}
.button--content {
display: flex;
justify-content: space-between;
align-items: center;
height: 60px;
width: 100%;
padding-top: 1rem;
padding-right: 1rem;
padding-bottom: 1rem;
padding-left: 1.75rem;
box-sizing: border-box;
}
.button--icon--wrap {
display: flex;
width: 42.5px;
height: 100%;
align-items: center;
justify-content: center;
overflow: hidden;
}
.button--icon {
display: block;
width: 0;
height: 0;
border-style: solid;
border-width: 5.5px 0 5.5px 8.5px;
border-color: transparent
transparent
transparent
white;
}
/* アニメーション */
.button--text {
transition: opacity 0.15s ease;
}
.button:hover .button--text {
opacity: 0.8;
}
.button:hover .button--icon {
animation-name: animButtonArrow;
animation-duration: 1s;
animation-iteration-count: 1;
}
@keyframes animButtonArrow {
0% {
transform: translateX(0px);
}
50% {
transform: translateX(50px);
}
51% {
transform: translateX(-50px);
}
100% {
transform: translateX(0px);
}
}
お問い合せはBSTへ!
-
前の記事
【デモあり】barba.js v2でシームレスなサイトを実現する方法 2023.07.12
-
次の記事
【Blender】ブーリアンモディファイアーで入口を作る! 2023.10.19