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 トリガーの使用方法と利点と欠点の紹介

目次序文1. トリガーの概要2. トリガーの作成2.1 トリガー構文の作成2.2 コード例3. トリ...

Vue実装のカウンターケース

この記事では、カウンター表示を実現するためのVueの具体的なコードを例として紹介します。具体的な内容...

Sitemesh チュートリアル - ページ装飾技術の原理と応用

1. 基本概念1. Sitemeshはページ装飾技術です。 1 : フィルターを通してページアクセス...

MySQL で自動インクリメントシーケンスを実装するためのサンプルコード

1. シーケンステーブルを作成する テーブル `sequence` を作成します ( `name` ...

Linux システムを起動時に自動的にスクリプトを実行するように設定する方法の例

序文みなさんこんにちは。私は梁旭です。職場では、システムの起動後にスクリプトやサービスを自動的に開始...

HTML でランダムロールコーラーを実装するためのサンプルコード

この点呼装置は簡易版であり、自動停止の必要性を考慮していないため、点呼を開始した後、停止ボタンをクリ...

Docker を使用した ElasticSearch:7.8.0 クラスターのインストールに関する詳細なチュートリアル

ElasticSearch クラスターは、クラスターを構築するための動態請求的方式と靜態配置文件をサ...

MySQL 自動インクリメント ID 枯渇の例

ディスプレイ定義IDテーブルに定義された自動増分IDが上限に達した場合、次のIDを申請する際に得られ...

Nginx で IP と IP 範囲をブロックする方法

前面に書かれたNginx は単なるリバース プロキシおよび負荷分散サーバーではなく、電流制限、キャッ...

HTMLヘッダータグの使用に関する詳細な説明

HTMLはヘッドとボディの2つの部分で構成されています** ヘッド内のタグはヘッドタグです** タイ...

Iframe の内外のページで JS がどのように動作するかの概要

目次iframeの外側のiframeのコンテンツを取得する方法1方法2 iframe 内の ifra...

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

目次ナンセンス実装された機能文章要点ナンセンスデモプレビュー実装された機能デフォルトでホームページが...

get メソッドによる HTML フォームの値転送の例

google.htmlインターフェースは図の通りですコードは図のとおりです: (比較的シンプルで、入...

Vue+thinkphp5.1+axiosでファイルアップロードを実現

この記事では、thinkphp5.1 + Vue+axiosを使用してファイルをアップロードする方法...