CSS3 シンプルカットカルーセル画像実装コード

CSS3 シンプルカットカルーセル画像実装コード

実装のアイデア

  • まず、親コンテナーを作成し、2 つの順序なしリストを使用して、柔軟なレイアウトで親コンテナーを 2 つの列に分割します。
  • li に画像を保存する場合、左の li に {background: url('image address') no-repeat; background-size: 200% 100%;}、右の li に {background-position-x: -300 (親コンテナの幅の半分) px;} を指定することで、画像を 2 つの列に分割できます。
  • ブラウザの 3D 表示を有効にするには、ul に {ransform-style: preserve-3d; } 属性を指定します。
  • 子と親を使用して、li を積み重ねます ul{position: relative;} li {position: absolute;}。
  • transform プロパティを使用して li の回転を設定します。
  • ここで、.box:hover>ul { transition: all 5s;transform: rotateX(360deg); } を追加して効果を確認できます。
  • 最後に、ユーザーが自分で画像を切り替えることができるように 2 つのボタンを追加します。
  • クリックすると、ulの回転角度が変更されます
  btn1.onclick = ()=>{
            アイテム++;
            r = アイテム * 90 とします。
            letf.style.transform = 'rotateX(' + r + 'deg)';
            letf.style.transition = 'すべて 1';
            right.style.transform = 'rotateX(' + r + 'deg)';
            right.style.transition = 'すべて 1 .3';
        }
        btn2.onclick = ()=>{
            アイテム - ;
            r = アイテム * 90 とします。
            letf.style.transform = 'rotateX(' + r + 'deg)';
            letf.style.transition = 'すべて 1';
            right.style.transform = 'rotateX(' + r + 'deg)';
            right.style.transition = 'すべて 1 .3';
        }

最後に、すべてのコードを添付します。フロントエンドの学習に役立つことを願っています。

HTMLコード

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
    <title>カルーセル画像を切り取る</title>
</head>
<本文>
    <div class="box">
        <ul class="letf">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
        <ul class="right">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
    <button id="btn1">前のページ</button><button id="btn2">次のページ</button>
</本文>
</html>

CSSコード

*{
    マージン: 0;
    パディング: 0;
}
体{
    パースペクティブ: 800px;
}
。箱{
    ディスプレイ: フレックス;
    幅: 600ピクセル;
    高さ: 350ピクセル;
    マージン: 150px 自動;
}
.box:hover ul li:nth-child(1){
    遷移: すべて 5 秒;
    変換: rotateX(360deg);
}
ul{
    フレックス: 1;
    リストスタイル: なし;
    パディング: 0;
    マージン: 0;
    transform-style: preserve-3d; /* ブラウザで 3D 表示を有効にする*/
    位置: 相対的;
}
li{
    幅: 100%;
    高さ: 100%;
    位置: 絶対;
}
li:n番目の子(1){
    背景: url('../images/9.jpg') 繰り返しなし;
    背景サイズ: 200% 100%;
    変換: translateZ(175px);

}
li:n番目の子(2){
    背景: url('../images/10.jpg') 繰り返しなし;
    背景サイズ: 200% 100%;
    変換: 回転X(90度) 移動Z(175ピクセル);
}
li:n番目の子(3){
    背景: url('../images/11.jpg') 繰り返しなし;
    背景サイズ: 200% 100%;
    変換: 回転X(180度) 移動Z(175ピクセル);
}
li:n番目の子(4){
    背景: url('../images/12.jpg') 繰り返しなし;
    背景サイズ: 200% 100%;
    変換: 回転X(-90度) 移動Z(175px);
}
.right li{
    背景位置x: -300px;
}

jsコード

  項目を 0 にします。
        btn1 = document.getElementById('btn1'); とします。
        btn2 = document.getElementById('btn2'); とします。
        let letf = document.querySelector('.letf');
        右 = document.querySelector('.right') とします。
        btn1.onclick = ()=>{
            アイテム++;
            r = アイテム * 90 とします。
            letf.style.transform = 'rotateX(' + r + 'deg)';
            letf.style.transition = 'すべて 1';
            right.style.transform = 'rotateX(' + r + 'deg)';
            right.style.transition = 'すべて 1 .3';
        }
        btn2.onclick = ()=>{
            アイテム - ;
            r = アイテム * 90 とします。
            letf.style.transform = 'rotateX(' + r + 'deg)';
            letf.style.transition = 'すべて 1';
            right.style.transform = 'rotateX(' + r + 'deg)';
            right.style.transition = 'すべて 1 .3';
        }

CSS3 シンプル カッティング カルーセルの実装コードに関するこの記事はこれで終わりです。CSS3 カッティング カルーセルに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  DockerコンテナでLNMPをコンパイルする例

>>:  Vueトップタグ閲覧履歴の実装

推薦する

MySQL 8.0.16 winx64 のインストールと設定方法のグラフィックチュートリアル (win10 の場合)

この記事では、MySQL 8.0.16 winx64のインストールと設定の具体的な方法を記載します。...

nginx で正規表現を使用してワイルドカードドメイン名を自動的に一致させる方法

Nginxは正規表現を使用して、ワイルドカードドメイン名をディレクトリに自動的に一致させます。 Ng...

Vue はフォームデータ検証のサンプルコードを実装します

el-form フォームにルールを追加します。データにルールを定義する定義されたルールをel-for...

Dockerを使用してSpringBootプロジェクトをデプロイする方法

Docker テクノロジの開発により、マイクロサービスの実装にさらに便利な環境が提供されます。Doc...

mysql8.0.11クライアントがログインできない問題の解決方法

この記事では、mysql8.0.11クライアントがログインできない問題の解決策を紹介します。参考まで...

HTMLとXHTML、HTML4とHTML5のタグの違いについて簡単に紹介します。

HTML と XHTML の違い1. XHTML要素は正しくネストされている必要がある2. XHT...

画像とテキストでHTTPヘッダーのあらゆる側面を理解する

HTTPヘッダーとはHTTP は「Hypertext Transfer Protocol」の略です。...

Node.js の fs モジュールと Path モジュールのメソッドの詳細な説明

概要:ファイルシステム モジュールは、標準の POSIX ファイル I/O 操作セットをラップしたシ...

MySql ページングで limit+order by を使用する場合のデータ重複の解決策

目次まとめ問題の説明問題を分析する問題を解決するまとめ複雑な知識をシンプルに説明できることは重要です...

MySQLカスケードレプリケーションの実装方法の例

いわゆるカスケード レプリケーションでは、マスター サーバーが 1 つのスレーブ サーバーにのみデー...

CSS3 を使用して入力複数選択ボックスのスタイルをカスタマイズする例

原則: まず入力要素を非表示にし、次に CSS を使用してラベル要素のスタイルを設定します (他の要...

Nginx でアンチホットリンクを設定するための手順を完了する

必要:通常、サイト側は、ウェブサイト上の動画や写真が盗まれるのを防ぎたいと考えています。結局のところ...

Tomcatのデフォルトパスの設定によって発生するプロジェクトURLの競合を解決する方法の詳細な説明

序文Tomcat は優れた Java コンテナですが、避けられない小さな落とし穴もいくつかあります。...

データベースSQL文の最適化

最適化する理由:実際のプロジェクトが開始され、データベースが一定期間稼働した後、初期のデータベース設...

Linux で Ceph 分散ソフトウェアをインストールして使用する方法に関するチュートリアル

目次序文1. 基本環境1. サービス配信2. ネットワーク構成(全ノード) 3. SSHパスワードフ...