線から塗に変化(左から右)

ボタン
-線から塗りに変化(左から右)-

デモページを見る

See the Pen 7-1-23 線から塗に変化(左から右) by 動くWebデザインアイディア帳 (@ugokuweb) on CodePen.

「Result」内のボタンにカーソルをあわせて動きを確かめてね!

動きを実現する仕組み

CSS でHTML の<a>タグと<span>タグにそれぞれ疑似要素をつけて、線と背景色を描画する。
transition-delay を使い、線⇒背景⇒テキスト色の変化という順番にアニメーションを遅らせながら出現させる。

HTMLの書き方

  1. head終了タグ直前に自作のCSSを読み込みます。
    <link rel="stylesheet" type="text/css" href="css/7-1-23.css">
    </head>
  2. body内のボタンを表示させたい場所に以下のHTMLを記載します。
    <a href="#" class="btn04 borderleft"><span>7-1-23 線から塗に変化(左から右)</span></a>

自作のCSS内の書き方


/* ボタン共通設定 */
.btn04 {
    /*線の基点とするためrelativeを指定*/
	position: relative;
    /*ボタンの形状*/
	display:inline-block;
    padding: 10px 30px;
	color:#333;
	border:1px solid #ccc;
    text-decoration: none;
    outline: none;
    /*はみ出す背景色を隠す*/
 	overflow: hidden;
}

/*hoverした際のボタンの形状*/
.btn04:hover {
	color:#ccc;
	border-color: transparent;
    /*色の変化を遅らせる*/
	transition-delay: .6s;
}

/*線の設定*/
.btn04 span{
    display: block;
    z-index: 2;
}

/*== 線から塗に変化(左から右) */

/*線の設定*/
.borderleft span::before,
.borderleft span::after {
    content: '';
    /*絶対配置で線の位置を決める*/
    position: absolute;
    width:0;
    height:1px;
    /*線の形状*/
    background: #333;
    /*アニメーションの設定*/
	transition: all .3s;
}

/*左上線*/
.borderleft span::before {
    left:0;
    top:0;
}

/*左下線*/
.borderleft span::after {
    left:0;
    bottom:0;
}

/*hoverをすると線が伸びる*/
.borderleft:hover span::before,
.borderleft:hover span::after {
    width: 100%;
}

/*背景の設定*/
.borderleft::before{
	content: '';
    /*絶対配置で線の位置を決める*/
	position: absolute;
	left: 0;
    bottom:0;
	z-index: -1;
    /*背景の形状*/
	height: 100%;
	width: 0;
	background:#333;
    /*アニメーションの設定*/
	transition: all .3s;
}

/*hoverをすると背景が伸びる*/
.borderleft:hover::before{
	width: 100%;
    /*0.4秒遅れてアニメーション*/
	transition-delay: .4s;
}

この技術を使ったサンプルサイト

バリエーション
を見る

「機能」に関わる
動き一覧

書籍情報

紙面だからこそできるまとめ方でコードを説明し、
全体を俯瞰して調べることが出来る構成になっています。

もちろん、パーツのサンプルコードもzipでまとめてダウンロードできます。
購入をしてくださった方には特典がありますので是非チェックしてみてください!

書籍紙面サンプル

出版社:ソシム株式会社
2021/2/27 発売

書籍紙面サンプル

出版社:ソシム株式会社
2021/7/31 発売

Page
Top