この記事では、写真の自動再生効果を実現するためのJSの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。 JSは写真の自動再生を実現する1. まずレンダリングを見る 2. 完全なコード <!DOCTYPE html> <html> <ヘッド> <スタイル> /* スタイルを定義する */ 体{ マージン: 5% 30%; } .bannerimage{幅:700px;高さ:400px;フロート:left;背景サイズ:100% 100%;色:#fff;ボックスシャドウ: 0 0 12px 2px #142732;} .box{幅:700px;高さ:400px;マージン:0px 自動;オーバーフロー: 非表示;} /* ボックスの幅は、画像の数とバナー画像の幅を掛け合わせたものです*/ .img-g{幅:4900px;高さ:400px;位置:相対;} .img-g img{float:left;width:700px;height:400px;} .button-g{位置:相対;上:-35px;テキスト配置:中央;} .button-g span{display:inline-block;position:relative;z-index:10;width:10px;height:10px;margin:0.5px;border-radius:100%;cursor:pointer;} </スタイル> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript"> $(関数() { // 自動再生を実装する var p=document.getElementsByClassName('img-g')[0]; var ボタン = document.querySelectorAll('.button-g span') // 再生時間を 3 秒に設定します。window.timer=setInterval(move,3000); // カルーセル設定関数move(){ // バナー画像の幅×画像数 if(parseInt(p.style.left)>-4200){ // 幅をbannerimage: 700と同じにします p.style.left=parseInt(p.style.left)-700+'px' p.style.transition='左1秒'; tog(-Math.round(parseInt(p.style.left)/700)) (parseInt(p.style.left)<= -4200)の場合{ setTimeout(関数(){ トグ(0) p.style.left='0px' p.style.transition='左0秒'; },1000) } }それ以外{ p.style.left='0px' p.style.transition='左0秒'; } } //小さなドットを設定します for(var i=0;i<button.length;i++){ // ボタン[i].style.backgroundColor='#eee'; ボタン[i].onclick=関数(){ p.style.left=-700*this.getAttribute('data-index')+'px' tog(this.getAttribute('データインデックス')) クリア間隔(ウィンドウ.タイマー) window.timer=setInterval(移動、3000); } } //小さなドット関数tog(index){を設定します if(インデックス>5){ トグ(0); 戻る; } for(var i=0;i<button.length;i++){ ボタン[i].style.backgroundColor='rgba(255, 255, 255, 0.5)'; } ボタン[インデックス].style.backgroundColor='rgb(255, 255, 255)'; } // マウスオーバーイベント p.onmouseover=function(){ クリア間隔(ウィンドウ.タイマー) } // マウス削除イベント p.onmouseout=function(){ window.timer=setInterval(移動、3000); } }); </スクリプト> </head> <本文> <div class="バナーイメージ"> <div クラス = 'ボックス'> <div class='img-g' style='left:0px;transition:left 1s;'> <img src="images/img_1.jpg" alt="1"> <img src="/images/img_2.jpg" alt="2"> <img src="/images/img_3.jpg" alt="3"> <img src="/images/img_4.jpg" alt="4"> <img src="/images/img_5.jpg" alt="5"> <img src="/images/img_6.jpg" alt="6"> <img src="/images/img_1.jpg" alt="1"> </div> <div class='button-g'> <span data-index='0' style="background-color: #eeeeee"></span> <span data-index='1' style="background-color: rgba(255, 255, 255, 0.5)"></span> <span data-index='2' style="background-color: rgba(255, 255, 255, 0.5)"></span> <span data-index='3' style="background-color: rgba(255, 255, 255, 0.5)"></span> <span data-index='4' style="background-color: rgba(255, 255, 255, 0.5)"></span> <span data-index='5' style="background-color: rgba(255, 255, 255, 0.5)"></span> </div> </div> </div> </本文> </html> 3. キーコードの説明 3.1. CSS 設定の注意: img-g の幅は、img の数にバナー画像の幅を掛けた値で、次のようになります。 .img-g{幅:4900px;高さ:400px;位置:相対;} 3.2. カルーセル定数とイベント設定 定数 1 は、次のように、バナー画像の幅に画像の数を掛けた値に設定されます。 (parseInt(p.style.left)>-4200)の場合{} 定数 2 は、バナー画像の幅を一定 (700) に保つために次のように設定されます。 p.style.left=parseInt(p.style.left)-700+'px' 小さなドットの表示設定: //小さなドットを設定します for(var i=0;i<button.length;i++){ ボタン[i].style.backgroundColor='#eee'; ボタン[i].onclick=関数(){ p.style.left=-700*this.getAttribute('data-index')+'px' tog(this.getAttribute('データインデックス')) クリア間隔(ウィンドウ.タイマー) window.timer=setInterval(移動、3000); } } // 小さなドットのクリックイベントを設定する function tog(index){ //ドットの数if(index>5){ トグ(0); 戻る; } for(var i=0;i<button.length;i++){ // デフォルトのドット表示色 button[i].style.backgroundColor='rgba(255, 255, 255, 0.5)'; } // 現在のドットボタンの表示色[index].style.backgroundColor='rgb(255, 255, 255)'; } マウス イベント: マウスを移動すると再生を停止し、マウスを離すと 3 秒後に再生します。 // マウスオーバーイベント p.onmouseover=function(){ クリア間隔(ウィンドウ.タイマー) } // マウス削除イベント p.onmouseout=function(){ window.timer=setInterval(移動、3000); } 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: docker に php-fpm サービス/拡張機能/構成をインストールする詳細なチュートリアル
>>: MySQL 8.0.18 圧縮パッケージのインストールと忘れたパスワードのリセット時に遭遇する落とし穴
序文JS に触れるすべての開発者は、必然的に for ループを扱うことになります。結局のところ、fo...
遅いログクエリ機能スロー ログ クエリの主な機能は、設定された時間しきい値を超える SQL ステート...
XHTML には多くのタグがありますが、頻繁に使用されるのはごくわずかであり、習得する必要があるのは...
1.MySQLの複数インスタンスMySQL マルチインスタンスとは、1 台以上のマシン上で複数の M...
異なるブラウザ間でページの表示を一致させるためには、フロントエンド開発において CSS スタイルのク...
目次前面に書かれたWC とは何でしょうか?現在の欠陥1. コンポーネント内部イベントのコールバック2...
補足<br />HTML について何も知らず、HTML の始め方がまだわからない場合は、...
目次1. 手順1. ボタンの権限を定義する2. ストアを定義する3. 権限指示を作成する4. パーミ...
1. protoをコンパイルするすべての .proto ファイルを保存するために、src フォルダー...
私はずっとDockerにはIPアドレスがないと思っていました。実はDockerのネットワークテンプレ...
** CentOS7 で yum ソースをインストールし、rz および sz コマンドをアップロー...
[LeetCode] 176. 2番目に高い給与従業員テーブルから 2 番目に高い給与を取得する ...
目次序文プロジェクトを初期化するデザインコードの実装オンデマンドロードオーディオを再生録音長押しイベ...
最近、サーバー上のアカウントが2つハッキングされ、パスワードが改ざんされました。幸い、まだ使えるアカ...
HTML のインライン要素とブロックレベル要素の違い:標準的なドキュメント フローでは、ブロック ...