結果のプレビュー
押してフルスクリーンプレビューへのリンクをクリックして、現在のページをプレビューする権利「プレビュー]をクリックします」ボタンをクリックします。
https://codepen.io/comehope/pen/LmrZVX
インタラクティブなビデオチュートリアル
このビデオでは、対話型である、あなたがビデオを編集して、コードのビデオを一時停止することができます。
クロム、サファリ、エッジオープンビューを使用してください。
https://scrimba.com/p/pEgDAM/cPd9asV
ソースコードのダウンロード
githubのからダウンロードしてください。
HTTPS://github.com/comehope/f ...
コード読み取り
定義されたDOM、8行9の前記<ドット>は、単により多くの塗りつぶしの色の画素を表す画素のハート型パターン:
<div class="heart">
<!-- line 1 -->
<span></span>
<dot></dot>
<dot></dot>
<span></span>
<span></span>
<span></span>
<dot></dot>
<dot></dot>
<span></span>
<!-- line 2 -->
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<span></span>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<!-- line 3 -->
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<!-- line 4 -->
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<!-- line 5 -->
<span></span>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<span></span>
<!-- line 6 -->
<span></span>
<span></span>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<dot></dot>
<span></span>
<span></span>
<!-- line 7 -->
<span></span>
<span></span>
<span></span>
<dot></dot>
<dot></dot>
<dot></dot>
<span></span>
<span></span>
<span></span>
<!-- line 8 -->
<span></span>
<span></span>
<span></span>
<span></span>
<dot></dot>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
中央揃え:
html,body{
height: 100%;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(silver, white);
}
ハート型のスタイルを設定します:
.heart {
display: grid;
grid-template-columns: repeat(9, 1fr);
grid-gap: 2px;
}
.heart > * {
width: 1em;
height: 1em;
border-radius: 0.1em;
font-size: 30px;
}
.heart dot{
background: red;
}
フェードアニメーションの定義:
.heart dot{
filter: opacity(0);
animation: animation 5s ease-out infinite;
}
@keyframes animation{
0%{
filter: opacity(0);
transform: translateY(-10em);
}
25%{
filter: opacity(1);
transform: translateY(0);
}
75%{
filter: opacity(1);
transform: translateY(0);
}
100%{
filter: opacity(0);
transform: translateY(10em);
}
}
最後に、強化されたアニメーション、異なる時間に各画素入場をしてみましょう:
.heart dot:nth-of-type(2n) {
animation-delay: 0.2s;
}
.heart dot:nth-of-type(3n) {
animation-delay: 0.3s;
}
.heart dot:nth-of-type(4n) {
animation-delay: 0.4s;
}
.heart dot:nth-of-type(5n) {
animation-delay: 0.5s;
}
.heart dot:nth-of-type(6n) {
animation-delay: 0.6s;
}
.heart dot:nth-of-type(7n) {
animation-delay: 0.7s;
}
.heart dot:nth-of-type(8n) {
animation-delay: 0.8s;
}
.heart dot:nth-of-type(9n) {
animation-delay: 0.9s;
}
.heart dot:nth-of-type(10n) {
animation-delay: 1.0s;
}
.heart dot:nth-of-type(11n) {
animation-delay: 1.1s;
}
私たちは完了です。
知識ポイント
- グリッドテンプレート列https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns
- グリッドギャップhttps://developer.mozilla.org/en-US/docs/Web/CSS/grid-gap
- :n番目の型()https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-of-type
- アニメーション、遅延https://developer.mozilla.org/en-US/docs/Web/CSS/animation-delay
- 移動Y()https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translateY
- フィルタhttps://developer.mozilla.org/en-US/docs/Web/CSS/filter