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トップタグ閲覧履歴の実装

推薦する

Nexusプライベートサーバー構築原理とチュートリアル分析

1つ。 Nexus プライベート サーバーを構築する理由は何ですか?社内の開発メンバーは全員外部ネッ...

MySQL 8.0.13 解凍版のインストールと設定方法のグラフィックチュートリアル

1. インストール1. MySQLをダウンロードするダウンロードアドレス: リンクアドレスブラウザで...

Dockerスペースがいっぱいでコンテナに入れない場合の解決策

トラブル発生が突然で、業務も迫っていたため、現場のスクリーンショットを撮る時間がありませんでしたので...

XHTML 1.0 リファレンス

機能別に並べ替えNN: このタグをサポートする Netscape の以前のバージョンを示しますIE:...

Centos での TCPWrappers アクセス制御の実装

1. TCP ラッパーの概要TCP Wrappers は TCP サービス プログラムを「ラップ」し...

MySQL 作成ルーチン権限に関する注意事項

1. ユーザーにルーチン作成権限がある場合は、プロシージャ | 関数を作成できます。 2. ユーザー...

Linux7で仮想ホストを実装する3つの方法

1. 同じIPアドレス、異なるポート番号仮想ホスト 1: ホスト IP アドレスは 172.16.3...

MySQL スライディング集計/年初来集計の原理と使用例の分析

この記事では、例を使用して、MySQL スライディング集計/年初来集計の原理と使用方法を説明します。...

JavaScript を使用してソートアルゴリズムを実装する方法

目次バブルソート選択ソート挿入ソート要約するバブルソートバブルソートは、シーケンスの右側から始めて、...

CSSをインポートする方法に関する詳細な洞察の要約

CSS の開発履歴についてはここでは紹介しません。ブログを書いている理由の 1 つは、フロントエンド...

vue3 テレポートの詳細な使用例

公式ウェブサイトhttps://cli.vuejs.org/ja/ガイド/場合によっては、コンポーネ...

DELL R730 サーバーの構成 RAID とインストール サーバー システムとドメイン制御の詳細なグラフィック チュートリアル

最近、会社で DELL R730 サーバーを購入したのですが、偶然次のチュートリアルを見つけたので、...

EXPLAIN を使って MySQL の SQL 実行プランを分析する方法

序文MySQL では、EXPLAIN コマンドを使用して、テーブルの接続方法や SELECT ステー...

音楽プレーヤーアプリ(アプリケーションソフトウェア)の分析と再設計 美しい音楽プレーヤーインターフェースの設計方法

無線インタラクションにずっと興味があったので、今回は実践してみようと思います〜この分析と評価は iO...

Mysql でサーバーの UUID を変更する方法

問題の原因:スレーブサーバーがクローンマスターサーバーである場合、server-uuidの値は同じで...