
5 つの異なるボックスを含むシンプルな Web レイアウトを実装しました。それぞれに異なる背景画像があり、ボックス間に一定の間隔があります。ボックスの上にマウスを置くと、背景画像が薄暗くなり、テキストが白に変わります。ボックスとボタンはコンテナー内に配置され、ページ全体がギャラリーのように見えます。
<div class="コンテナ">
<div id="スライド">
<div class="item" style="background-image:url('./img/Zhang Ruonan01.jpg')"></div>
<div class="item" style="background-image:url('./img/Ju Jingyi01.jpg')"></div>
<div class="item" style="background-image:url('./img/Ju Jingyi02.jpg')"></div>
<div class="item" style="background-image:url('./img/Ju Jingyi06.jpg')"></div>
<div class="item" style="background-image:url('./img/Ju Jingyi04.jpg')"></div>
<div class="item" style="background-image:url('./img/Ju Jingyi07.jpg')"></div>
</div>
<div class="ボタン">
<div class="左">
< 前</div>
<div class="center">壁紙をダウンロード</div>
<div class="right">次へ ></div>
</div>
</div>
</div> * {
マージン: 0;
パディング: 0;
ボックスのサイズ設定: ボーダーボックス;
}
。容器 {
幅: 100vw;
高さ: 100vh;
位置: 相対的;
オーバーフロー: 非表示;
}
。アイテム {
幅: 240ピクセル;
高さ: 160ピクセル;
位置: 絶対;
トップ: 50%;
左: 0;
変換: 変換Y(-50%);
境界半径: 10px;
ボックスシャドウ: 0 30px 50px #505050;
背景サイズ: カバー;
背景位置: 中央;
遷移: 1秒。
}
.item:nth-child(1)、
.item:nth-child(2) {
左: 0;
トップ: 0;
幅: 100%;
高さ: 100%;
変換:translateY(0);
ボックスシャドウ: なし。
境界半径: 0;
}
.item:nth-child(3) {
左: 70%。
}
.item:nth-child(4) {
左: calc(70% + 250px);
}
.item:nth-child(5) {
左: calc(70% + 500px);
}
.item:n番目の子(n+6) {
左: calc(70% + 750px);
不透明度: 0;
}
.ボタン {
幅: 100%;
位置: 絶対;
下: 50ピクセル;
マージン左: -50px;
テキスト整列: 中央;
ディスプレイ: フレックス;
コンテンツの位置揃え: 中央;
}
.buttons div {
幅: 120ピクセル;
高さ: 50ピクセル;
行の高さ: 50px;
テキスト整列: 中央;
境界半径: 5px;
マージン: 0 25px;
トランジション: 0.5秒。
カーソル: ポインタ;
ユーザー選択: なし。
フォントサイズ: 20px;
色: #fff;
背景色: rgba(0, 0, 0, 0.4);
ボックスシャドウ: 2px 2px 2px rgba(0, 0, 0, 0.2);
} const leftBtn = document.querySelector(".buttons .left")
const rightBtn = document.querySelector(".buttons .right")
const slide = document.querySelector("#slide")
let openClick = true // スロットル処理 (アニメーションの実行プロセスを確実にするため、ボタンが繰り返しクリックされないようにします)
leftBtn.addEventListener("クリック", () => {
if (openClick) {
openClick = false // クリックをトリガーした後、ボタンを無効にします const items = document.querySelectorAll(".item")
slide.prepend(items[items.length - 1])
setTimeout(() => openClick = true, 1000) // ボタンを再度開くまで 1 秒}
})
rightBtn.addEventListener("クリック", () => {
if (openClick) {
openClick = false
const items = document.querySelectorAll(".item")
slide.appendChild(items[0])
setTimeout(() => openClick = true, 1000)
}
})* {
マージン: 0;
パディング: 0;
ボックスのサイズ設定: ボーダーボックス;
}このコードは、要素のボックス モデルをボーダー ボックスに設定するなど、グローバル CSS スタイルを設定します。つまり、ボックス モデルの幅と高さには、要素のコンテンツだけでなく、要素の境界線とパディングが含まれます。
。容器 {
幅: 100vw;
高さ: 100vh;
位置: 相対的;
オーバーフロー: 非表示;
}このコードは、コンテナーの幅と高さを 100vw と 100vh (ビューポートの幅と高さ) に設定するなど、コンテナーの CSS スタイルを設定します。同時にコンテナの配置を相対配置、つまり親要素を基準とした配置に設定します。最後に、コンテナのオーバーフロー プロパティを非表示に設定します。つまり、コンテナのスコープを超える要素は表示されません。
。アイテム {
幅: 240ピクセル;
高さ: 160ピクセル;
位置: 絶対;
トップ: 50%;
左: 0;
変換: 変換Y(-50%);
境界半径: 10px;
ボックスシャドウ: 0 30px 50px #505050;
背景サイズ: カバー;
背景位置: 中央;
遷移: 1秒。
}このコードは、ボックスの幅と高さをボックスのサイズである 240 ピクセルと 160 ピクセルに設定するなど、ボックスの CSS スタイルを設定します。同時に、ボックスの位置を絶対位置、つまり親要素を基準とした相対位置に設定します。最後に、ボックスの境界線の半径を 10px (ボックスの丸い角) に設定します。ボックスの背景画像サイズはカバーであり、ボックス全体をカバーします。背景画像が中央に配置されます。最後に、ボックスのトランジション効果を 1 秒に設定します。つまり、トランジション効果時間は 1 秒です。
.item:nth-child(1)、
.item:nth-child(2) {
左: 0;
トップ: 0;
幅: 100%;
高さ: 100%;
変換:translateY(0);
ボックスシャドウ: なし。
境界半径: 0;
}このコードは、最初と 2 番目のボックスの CSS スタイルを設定します。これには、ボックスの位置を 0 に設定することも含まれます。これは、コンテナーの上部を覆うことを意味します。また、高さを 100% に設定します。これは、コンテナーの高さ全体をカバーすることを意味します。最後に、変換プロパティをtranslateY(0)に設定します。これは、下に移動しないことを意味します。また、影と境界線の半径を 0 に設定します。つまり、影も境界線もありません。
.item:nth-child(3) {
左: 70%。
}このコードは、位置をコンテナーの左側から 70% に設定するなど、3 番目のボックスの CSS スタイルを設定します。
.item:nth-child(4) {
左: calc(70% + 250px);
}このコードは、位置を 3 番目のボックスの右側から 250 ピクセルに設定するなど、4 番目のボックスの CSS スタイルを設定します。
.item:nth-child(5) {
左: calc(70% + 500px);
}このコードは、位置を 3 番目のボックスの右側から 500 ピクセルに設定するなど、5 番目のボックスの CSS スタイルを設定します。
.item:n番目の子(n+6) {
左: calc(70% + 750px);
不透明度: 0;
}このコードは、3 番目のボックスの右から 750 ピクセルの位置の設定を含め、すべてのボックスの CSS スタイルを設定します。また、不透明度を 0 に設定します。つまり、非表示になります。
.ボタン {
幅: 100%;
位置: 絶対;
下: 50ピクセル;
マージン左: -50px;
テキスト整列: 中央;
ディスプレイ: フレックス;
コンテンツの位置揃え: 中央;
}このコードは、ボタンの CSS スタイルを設定するもので、ボタンの幅を 100% に設定すること、つまりボタンのサイズがコンテナーと同じになることを含みます。同時にボタンの位置をコンテナの下部から 50px に設定します。最後に、ボタンの配置を中央配置に設定します。これは、ボタンが水平方向の中央に配置されることを意味します。
.buttons div {
幅: 120ピクセル;
高さ: 50ピクセル;
行の高さ: 50px;
テキスト整列: 中央;
境界半径: 5px;
マージン: 0 25px;
トランジション:.5秒;
カーソル: ポインタ;
ユーザー選択: なし。
フォントサイズ: 20px;
色: #fff;
背景色: rgba(0, 0, 0, 0.4);
ボックスシャドウ: 2px 2px 2px rgba(0, 0, 0, 0.2);
}このコードは、ボタンの幅を 120 ピクセルに、高さをボタンのサイズである 50 ピクセルに設定するなど、ボタンの CSS スタイルを設定します。同時に、ボタンの行の高さをボタンの高さである 50px に設定します。ボタンのテキスト配置は中央揃え、つまりテキストは水平方向の中央揃えになります。ボタンの境界線の半径は 5 ピクセルで、これはボタンの丸い角です。ボタンの余白は0 25px、つまりボタンの左右の横方向の距離は25pxです。ボタンのトランジション効果は 0.5 秒、つまりトランジション効果時間は 0.5 秒です。ボタンのカーソル属性はポインタです。つまり、マウスをボタンの上に置くと、マウスの形状が手の形に変わります。ボタンのユーザー選択属性は none です。つまり、ユーザーはボタン内のテキストを選択できません。ボタンのフォント サイズは 20px で、これはボタンのテキスト サイズです。ボタンのテキストの色は、ボタンのテキストの色である白です。ボタンの背景色は rgba(0, 0, 0, 0.4)、つまりボタンの背景色は黒、透明度は 0.4 です。ボタンの影のプロパティは 2px 2px 2px rgba(0, 0, 0, 0.2) です。つまり、ボタンの影は 2px 2px 2px 黒で、透明度は 0.2 です。
HTML+CSS パノラマ カルーセルのサンプル コードに関するこの記事はこれで終わりです。関連する HTML CSS パノラマ カルーセルのコンテンツについては、downcodes.com で以前の記事を検索するか、引き続き次の関連記事を参照してください。引き続き downcodes.com をサポートしてください。将来的にはもっと!