この記事の内容は、JavaScriptで画像切り替えのアニメーション効果(コード)を実現する方法についてです。必要な方は参考にしていただければ幸いです。
最初のレンダリングは大体こんな感じです。左のボタンをクリックすると写真が切り替わります。
非常に簡単なように見えますが、まだいくつかの困難があるため、このケースを選択して慎重に分析します。
ステップ 1: レイアウト
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>图片切换器</title> </head> <style type="text/css"> *{ margin: 0; padding: 0; } body{ background-color: RGB(123,113,104); } #pic{ width: 300px; height: 400px; position: relative; margin: 50px auto; } #pic img{ width: 300px; height: 400px; } #pic span,#pic p{ position: absolute; width: 300px; height: 30px; line-height: 30px; text-align: center; background-color: rgba(61,50,48,0.5); } #pic span{ top: 0px; } #pic p{ bottom: 0px; } #pic ul{ position: absolute; top:0px; left: 320px; } #pic li{ list-style: none; width: 40px; height: 40px; background-color: #333; margin-bottom:10px ; } #pic li.active{ background-color: #F2F2F2; } </style> <body> <p id="pic"> <img src="img/1.jpeg"/> <span>- / -</span> <p>图片描述正在加载中...</p> <ul> <li class="active"></li> <li></li> <li></li> <li></li> <li></li> </ul> </p> </body> </html>
ステップ 2: データと初期化
1) データを見つける
2) ページを初期化する
<script type="text/javascript"> window.onload = function(){ var op = document.getElementById("pic"); var oImg = op.getElementsByTagName('img')[0]; var oSpan = op.getElementsByTagName('span')[0]; var oP = op.getElementsByTagName('p')[0]; var oUl = op.getElementsByTagName('ul')[0]; var arrSrc = ['img/1.jpeg','img/2.jpg','img/3.jpg','img/4.jpg','img/5.jpg']; var arrText = ['图片描述:第一张','图片描述:第二张','图片描述:第三张','图片描述:第四张','图片描述:第五张']; //一般有数组就需要一个值 var num = 0; //初始化 oSpan.innerHTML = num+1 +" / "+ arrSrc.length; oImg.src = arrSrc[num]; oP.innerHTML = arrText[num]; for(var i=0;i<arrSrc.length;i++){ oUl.innerHTML += '<li></li>'; } } </script>
ステップ 3: 画像を切り替え、画像を切り替え、これまでのテキストを表示します。は実現されましたが、その隣の ul の効果はまだ実現されていません
var oLi = oUl.getElementsByTagName('li'); //切换图片 for(var i=0;i<arrSrc.length;i++){ //自定义属性,一一对应 oLi[i].index = i; oLi[i].onclick = function(){ var id = this.index; //通过自定义的属性设置对应的信息 oImg.src = arrSrc[id]; oP.innerHTML = arrText[id]; oSpan.innerHTML = id+1 +" / "+ arrSrc.length; } }
ステップ 4: li のクラス スタイルを追加します。
アイデア 1:
li のすべてのスタイルをクリアし、クリックしたスタイルに追加します。
var oldLi = 0; //初始化 oLi[oldLi].className = 'active'; //在点击事件中 //循环将class清空 for(var j=0;j<arrSrc.length;j++){ oLi[j].className = ""; } oLi[id].className = "active";
アイデア 2:
前の値をクリアし、現在追加します
変数を定義し、oldLi はクリックされた前の値を保存します
デフォルトは 0 です
次のものをクリックすると、0 (デフォルト) がクリアされます。
そして、現在クリックされている li のインデックス カスタム属性を記録します oldLi = this.index;
次に、現在の li の class 属性を設定します
oLi[oldLi].className = ''; oldLi = id; this.className = 'active';
Completed;
完全なコードとスクリーンショットを以下に投稿します
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>图片切换器</title> </head> <style type="text/css"> *{ margin: 0; padding: 0; } body{ background-color: RGB(123,113,104); } #pic{ width: 300px; height: 400px; position: relative; margin: 50px auto; } #pic img{ width: 300px; height: 400px; border-radius:10px; } #pic span,#pic p{ position: absolute; width: 300px; height: 30px; line-height: 30px; text-align: center; background-color: rgba(61,50,48,0.5); } #pic span{ top: 0px; border-radius:10px 10px 0 0; } #pic p{ bottom: 0px; border-radius: 0 0 10px 10px; } #pic ul{ position: absolute; top:0px; left: 320px; } #pic li{ list-style: none; width: 40px; height: 40px; background-color: #333; margin-bottom:10px ; border-radius: 10px; } #pic li.active{ background-color: #F2F2F2; } </style> <script type="text/javascript"> window.onload = function(){ var oDiv = document.getElementById("pic"); var oImg = oDiv.getElementsByTagName('img')[0]; var oSpan = oDiv.getElementsByTagName('span')[0]; var oP = oDiv.getElementsByTagName('p')[0]; var oUl = oDiv.getElementsByTagName('ul')[0]; var oLi = oUl.getElementsByTagName('li'); var arrSrc = ['img/1.jpeg','img/2.jpg','img/3.jpg','img/4.jpg','img/5.jpg']; var arrText = ['图片描述:第一张','图片描述:第二张','图片描述:第三张','图片描述:第四张','图片描述:第五张']; //一般有数组就需要一个值 var num = 0; var oldLi = 0; //初始化 oSpan.innerHTML = num+1 +" / "+ arrSrc.length; oImg.src = arrSrc[num]; oP.innerHTML = arrText[num]; for(var i=0;i<arrSrc.length;i++){ oUl.innerHTML += '<li></li>'; } oLi[oldLi].className = 'active'; //切换图片 for(var i=0;i<arrSrc.length;i++){ //自定义属性,一一对应 oLi[i].index = i; oLi[i].onclick = function(){ var id = this.index; //通过自定义的属性设置对应的信息 oImg.src = arrSrc[id]; oP.innerHTML = arrText[id]; oSpan.innerHTML = id+1 +" / "+ arrSrc.length; oLi[oldLi].className = ''; oldLi = id; this.className = 'active'; } } } </script> <body> <div id="pic"> <img src="img/1.jpeg"/> <span>- / -</span> <p>图片描述正在加载中...</p> <ul> <!--<li class="active"></li>--> </ul> </div> </body> </html>
関連する推奨事項:
JavaScriptでインポートとエクスポートを実装する方法(コード付き)
ネイティブJSカルーセルレンダリングのアニメーション効果(コード付き)
以上がJavaScriptで画像切り替えのアニメーション効果を実現する方法(コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。