2017-05-28 1 views
0

この質問が以前に聞かれたかどうかわかりません。私は、このHTMLのための次の画像および前の画像機能を入れしようとしているJavaScriptイメージギャラリー2

<img id="imageDisplay"> 

<script type="text/javascript"> 
    var displayImage = document.querySelector('#imageDisplay'); 

    var imageArray = [ 'http://www.joongcho.com/Images/30th-Bday-Party-01.jpg', 
         'http://www.joongcho.com/Images/30th-Bday-Party-02.jpg', 
         'http://www.joongcho.com/Images/30th-Bday-Party-03.jpg', 
         'http://www.joongcho.com/Images/30th-Bday-Party-04.jpg', 
         'http://www.joongcho.com/Images/30th-Bday-Party-05.jpg', 
         'http://www.joongcho.com/Images/30th-Bday-Party-06.jpg' ]; 
    var imageCount = 0; 
    var imageLength = imageArray.length; 

    displayImage.setAttribute('src', imageArray[ imageCount ]); 

    function nextImage(imageCount) { 
    } 

    function previousImage(imageCount) { 
    } 
</script> 

:しかし...

私は私のHTMLファイル内に次のJavaScriptコードを持っています。

次のイメージでは、複数のイメージがあり、イメージが最後のイメージではない場合、ユーザーがアレイの前方をクリックできるリンクが必要です。また、イメージが配列内の最後のイメージである場合、リンクは非表示になります。

前の画像では、画像が配列の最初の画像でない場合、ユーザーが配列を後ろ向きにクリックできるリンクが必要です。イメージが最初のイメージの場合、前のリンクは非表示にする必要があります。

何か助けていただければ幸いです。あなたは(私はボタンを使用)ボタンまたはリンクにイベントリスナーを添付する必要があり

答えて

0

:もちろん

var displayImage = document.getElementById('imageDisplay'); 
 
var buttonPrev = document.getElementById('button-prev'); 
 
var buttonNext = document.getElementById('button-next'); 
 

 
var imageArray = [ '../Images/30th-Bday-Party-01.jpg', 
 
         '../Images/30th-Bday-Party-02.jpg', 
 
         '../Images/30th-Bday-Party-03.jpg', 
 
         '../Images/30th-Bday-Party-04.jpg', 
 
         '../Images/30th-Bday-Party-05.jpg', 
 
         '../Images/30th-Bday-Party-06.jpg' ]; 
 
var imageCount = 0; 
 
var imageLength = imageArray.length; 
 

 
function nextImage() { 
 
    imageCount++; 
 
    if (imageCount >= imageLength - 1) { 
 
    buttonNext.style.display = 'none'; 
 
    imageCount = imageLength - 1; 
 
    } 
 
    if (imageCount < imageLength) { 
 
    displayImage.setAttribute('src', imageArray[imageCount]); 
 
    } 
 
    if (imageCount > 0) { 
 
    buttonPrev.style.display = 'inline'; 
 
    } 
 
} 
 

 
function previousImage() { 
 
    imageCount--; 
 
    if (imageCount <= 0) { 
 
    buttonPrev.style.display = 'none'; 
 
    imageCount = 0; 
 
    } 
 
    if (imageCount >= 0) { 
 
    displayImage.setAttribute('src', imageArray[imageCount]); 
 
    } 
 
    if (imageCount < imageLength) { 
 
    buttonNext.style.display = 'inline'; 
 
    } 
 
} 
 

 
displayImage.setAttribute('src', imageArray[imageCount]); 
 
displayImage.textContent = imageCount; 
 
buttonPrev.style.display = 'none'; 
 
buttonNext.addEventListener('click', nextImage); 
 
buttonPrev.addEventListener('click', previousImage);
<img id="imageDisplay" /> 
 
<button id="button-prev">Back</button> 
 
<button id="button-next">Forward</button>

を、あなたはまだ、画像を見ることができません。

+0

このコードを実行すると問題なく動作しますが、[前へ]ボタンをクリックすると、次のボタンが完全に消えて再び前進する機会はありません。また、私の最後の最初のイメージに行くことはできません。 また、画像セクションに「http://www.joongcho.com/Images/」を追加して、機能していることを確認できますか?ありがとうございました。 – CaptSpirk

+0

これはいくつかの調整を加えれば動作しますが、すべてのブラウザで動作するわけではありません。 たとえば、Google Chromeでは正常に動作しますが、何らかの理由でIE 11以降で正常に動作しません。次のボタンは正常に動作しますが、前のボタンはInternet Explorerに表示されません。 [link] http://www.joongcho.com/downloads/random-a.htm [/ link]がその例です。 ありがとうございます。 – CaptSpirk

+0

はい、あなたは正しいです。 IEは['initial'](https://developer.mozilla.org/ja/docs/Web/CSS/initial)をサポートしていないようです。私は自分の答えを編集しました。今はうまくいくはずです。 – PeterMader

関連する問題