今回は画像をhoverするとブロックが積み上がっていくCSSアニメーションを実装しました。htmlとcssだけしか使っていません。
この記事の信頼性(ゆうけんブログの筆者はこんな人)
- 現役Webデザイナーが執筆
- 最高月収7桁超のフリーランス
- 完全未経験から独学でWeb制作スキルを習得
- Twitterフォロワー数2,000人超(→@twinzvlog_yk)
- Web制作のメンター経験多数
- 認定ランサー(ランサーズ最高ランク)
コードの説明や実際の動きも詳しくまとめてみたので自由にお使いください。
こちらのエフェクトのコードはすべて完全オリジナルなのでコピペ大歓迎です。
目次
1. hoverするとゲームみたいにブロックが積み上がるCSSアニメーション
下の画像のようになります
実際の動きはこちら
コードの確認
<div class="container">
<div class="bg-pic">
<div class="pic" style="background-image : url('https://cdn.pixabay.com/photo/2017/01/17/23/05/valetta-1988455_1280.jpg');">
<div class="screen one"></div>
<div class="screen two"></div>
<div class="screen three"></div>
<div class="screen four"></div>
<div class="fonts">
<h1>Malta's Building</h1>
<p>this is a photo in malta <br><br><br>Have A Good Time</p>
</div>
</div>
</div>
</div>
body {
background-color: #E43;
}
.container {
width : 960px;
margin : 0 auto;
/* flexboxでcontainerの中身をど真ん中に設置 */
display:flex;
align-items:center;
justify-content:center;
}
.container:after{
clear : both;
display : table;
content : '';
}
.bg-pic {
width : 500px;
height : 500px;
margin : 20px;
background-color: white;
float : left;
cursor : pointer;
box-shadow : 3px 3px 5px 0px rgba(0,0,0,0.5);
/* ボックスに影をつける(左から水平方向の長さ、垂直方向の長さ、ぼかしの長さ、ぼかしの広さ、色) */
}
.pic {
width : 500px;
height : 500px;
position: relative;
overflow: hidden;
/* はみ出る部分を隠す */
background-color: #102B46;
}
.fonts {
background-color : #ffffff;
width : 500px;
height : 500px;
padding : 10px;
top : 0;
left: 0;
font-family : georgia;
color : #888888;
opacity : 0;
/* 透明度を調整 */
transition : opacity .8s;
/* アニメーションの時間を調整 */
}
.fonts h1 {
margin-top: 100px;
margin-bottom : 40px;
}
.fonts p {
font-size : 14px;
font-style: italic;
text-align: center;
line-height : 20px;
}
.pic:hover .fonts {
opacity : 1;
/* 透明度を調整 */
transition : opacity .5s .7s;
/* アニメーションの時間を調整 */
}
.pic div {
position : absolute;
/* 親要素との絶対位置を指定 */
}
.screen {
width : inherit;
/* 親要素のwidthを受け継ぐ */
height : 130px;
background-color: #fff;
transition : all .4s;
/* アニメーションの時間を調整 */
top : -140px;
}
/* 各ブロックのアニメーション時間を指定 */
.screen.one {
transition : all .1s;
}
.screen.two {
transition : all .1s .1s;
}
.screen.three {
transition : all .1s .2s;
}
.screen.four {
transition : all .1s .3s;
}
.pic:hover .one {
top : 390px;
transition : all .2s;
}
.pic:hover .two {
top : 260px;
transition : all .2s .2s ;
}
.pic:hover .three {
top : 130px;
transition : all .2s .4s ;
}
.pic:hover .four {
top : 0px;
transition : all .2s .6s;
}
ここがポイント!
- display:flexでど真ん中に設置
- box-shadowで奥行きをつけて立体感を演出
- opacityでhover前とhover時で透明度を調整
- transitionを細かく指定することで複雑なアニメーションを実現
『絶対にリモートワーク!』という方におすすめの求人サイトをご紹介!
クラウドテック
この講座のポイント
対象
Webデザイナー・エンジニア・グラフィックデザイナー・PM・マーケター・ライター
公式サイト
クラウドテック公式ページ
特徴
- クラウドソーシング企業大手のクラウドワークスが運営する求人サイト
- 実務未経験者でもOK
- 登録社数14万社
- フリーランス・個人事業主向け案件がケタ違いに多い
- 報酬額や勤務地・職種など希望が通りやすい
- Web制作・コーディングの高単価案件が多い
- リモートワーク案件数は業界トップクラス
- 最短3日で案件を獲得できる
現役Webデザイナーの筆者イチオシの求人サイト!フリーランス向けWeb制作案件なら確実に業界トップクラス。営業かけずに案件に困らなくなる一番の近道です。
まとめ
HTMLとCSSを使うと今回紹介したようなことも簡単にできてしまうんです。
『CSSアニメーションやエフェクトだけではなくWebサイトをゼロから作って稼いでいきたい』
『3ヶ月くらいで最低でも月10万円は稼ぎたい』
『営業とかやったことないけどWeb制作だけで稼いでいきたい』
こんな方のためにWeb制作で月80万超稼ぐ筆者が自身の経験を踏まえて【失敗しない】Webデザイナー(Web制作)独学ロードマップを執筆しました。
少額の投資で3ヶ月後には月10〜30万稼げるよう設計してあります。
(学習教材やAdobeなど最低限のコストはかかります)
ロードマップの構成
- Web制作に特化した『確実に身に付く』学習方法
- Web制作会社が喰いつく理想的なポートフォリオの作成手順
- 返信率10%以上!Web制作会社へのメール営業
有料公開も考えましたが「Webデザイナー(Web制作)はまだまだ稼げることを証明したい!」という思いが強く、期間限定で無料公開をすることにしました。
2021年半ばまでは無料公開する予定ではありますが前倒しすることもあり得ますのでご興味ある方はお早めにどうぞ!