私はw3schools.comのチュートリアルに基づいてギャラリー上のモーダルでイメージを開くためにCSSとJavascriptを使用するイメージギャラリーを持っています。私はもともと外部の画像を指している問題を持っていましたが、ここにいる誰かが私にそれを修正する方法を教えてくれました。今度は、ユーザーが毎回モーダルを閉じずにギャラリーを移動できるように、前方と後方のボタンを作っていきたいと思います。私は、矢印ボタンをモジュルに表示させ(そして、サイズと移動、表示)、私はどのようにしたいのか分かりました。残念ながら、私はボタンをイメージとテキストを途中で変更することができませんでした。私ができる最高のことは、モーダルをクラッシュさせずに、少なくともクリックしたときに同じ画像とテキストにとどまるようにすることでした。これまでのところ私のコードです。イメージギャラリーの上にあるモーダル上の前後のボタン(スクロールする)?
<!-- The Modal -->
<div id="myModal" class="modal">
<span class="close">×</span>
<div class="backButton" id="bckBtn"><img src="../gallery_images/buttonPlaceHolder.png" alt="Back" style="width:100%; float:left">
</div>
<img class="modal-content" id="img01">
<div id="caption"></div>
<div class="forwardButton" id="fwdBtn"><img src="../gallery_images/buttonPlaceHolder.png" alt="Forward" style="width:100%; float:right;">
</div>
</div>
<script>
var modal = document.getElementById('myModal');
var span = document.getElementsByClassName("close")[0];
span.onclick = function() {
modal.style.display = "none";
}
var backButton = document.getElementById('bckBtn');
var forwardButton = document.getElementById('fwdBtn');
var images = document.getElementsByTagName('img');
var modalImg = document.getElementById("img01");
var captionText = document.getElementById("caption");
var i;
for (i = 0; i < images.length; i++) {
images[i].onclick = function(){
modal.style.display = "block";
var src = this.src;
var filename = src.substring(src.lastIndexOf('/')+1);
var filepath = src.substring(0, src.lastIndexOf('/')+1);
modalImg.src = filepath + 'large-' + filename;
modalImg.alt = this.alt;
captionText.innerHTML = this.nextElementSibling.innerHTML;
backButton.onclick = function() {
var filename = src.substring(src.lastIndexOf('/')+1);
var filepath = src.substring(0, src.lastIndexOf('/')+1);
modalImg.src = filepath + 'large-' + filename;
modalImg.alt = this.alt;
captionText.innerHTML = nextElementSibling.innerHTML;
}
forwardButton.onclick = function() {
var filename = src.substring(src.lastIndexOf('/')+1);
var filepath = src.substring(0, src.lastIndexOf('/')+1);
modalImg.src = filepath + 'large-' + filename;
modalImg.alt = this.alt;
captionText.innerHTML = nextElementSibling.innerHTML;
}
}
}
modalImg.onclick = function() {
modal.style.display = "none";
}
</script>
私は(ちょうど今日始まっ)JavaScriptに新たなんだ、私が望むものを作るに長く複雑な方法のように思えるが、。いかなる考えも認められるだろう。
ありがとうございました!あなたのコードは、2つの注意点に取り組んでいました:まず、前/後ボタンが逆に働いていました - 前進ボタンが後退し、後退ボタンが前進しました。私は、backButtonのコード/機能が現在のボタンになり、その逆も同様にスクリプトを切り替えました。私の問題は、最後の2番目のイメージ36に到達すると0にジャンプし、37をスキップすることです。「戻る」を押すと37に戻ります。私のギャラリーは次のとおりです:[MyGallery](http://www.personal.kent.edu/~mstingle/work/traditional/traditional.html)。私は次回に解決策を見つけようとします。 –
2番目の注意点は、今後画像を追加する必要があることです。画像が上部に追加されます。一番上の画像は0です。私は37を上に、0を下にして番号付けを変えようとしましたが、それは順方向/逆方向のシステムを壊しました。私はあなたが私に与えたもので解決策を見つけようとします。あなたがフルタイムで働いて、他の義務を負う時間を見つけるのは難しいです。それは、あなたが私に決めた道に大いに感謝しています。 –
回答が更新されました!しかし、私はここで自由なコーディングをやめることをやめます...それが私にとって楽しい演習だったとしても。 ;) –