2017-03-09 3 views
0

私は移動のためにコーディングを中断し、最近いくつかの新しい画像で私のウェブサイトを更新しようとしていました。私は走っている問題を示すフィドルを付けました。私のギャラリーに新しい画像(この場合はhike1 on fiddle)を追加したい場合は、大きなjpgを表示するために画像をクリックするたびに正しく表示されません。サムネイルjpgをクリックすると、そのサムネイルの大きな画像ではなく、その前の画像が表示されます。 (夕焼け写真をクリックすると、ハイキング1の写真が表示され、写真の夕焼け写真には、夕焼けの写真などが表示されます)。ギャラリーで大きな画像を複製するJavascriptコードをデバッグする。

誰かが助けてくれますか?私はそれが私が見過ごしている簡単な修正だと確信しています。それは私が持っているイメージとうまく動作しますが、新しいイメージを追加するとこれが起こります。右が問題だ

function openModal() { 
    document.getElementById('myModal').style.display = "block"; 
} 

function closeModal() { 
    document.getElementById('myModal').style.display = "none"; 
} 

var slideIndex = 1; 
showSlides(slideIndex); 

function plusSlides(n) { 
    showSlides(slideIndex += n); 
} 

function currentSlide(n) { 
    showSlides(slideIndex = n); 
} 

function showSlides(n) { 
    var i; 
    var slides = document.getElementsByClassName("mySlides"); 
    var dots = document.getElementsByClassName("demo"); 
    var captionText = document.getElementById("caption"); 
    if (n > slides.length) {slideIndex = 1} 
    if (n < 1) {slideIndex = slides.length} 
    for (i = 0; i < slides.length; i++) { 
    slides[i].style.display = "none"; 
    } 
    for (i = 0; i < dots.length; i++) { 
     dots[i].className = dots[i].className.replace(" active", ""); 
    } 
    slides[slideIndex-1].style.display = "block"; 
    dots[slideIndex-1].className += " active"; 
    captionText.innerHTML = dots[slideIndex-1].alt; 
} 

https://jsfiddle.net/crookymnster/wk0jrz9s/

答えて

1
currentSlide(1) 

。その関数に正しいインデックスを渡すと、サムネイルをクリックすると大きな画像が表示されます。あなたのフィドルを見て。ここでは、これは事実ですが、あなたは、その行が問題である理由をもう少し詳しく説明できれば、それが役立つだろう更新フィドル

https://jsfiddle.net/ywpzh8v2/

+0

です。この場合、問題は彼が各画像のcurrentSlide(x)関数で既に正しいインデックスを使用していて、次にslides []配列のインデックスを1つ削除していることです。また、最初の画像と2番目の同じインデックス(1) – sfratini

+0

ありがとう私はそれが私のHTMLでマイナーな間違いだったことに気付いた..私のjavascript ..単純な見落とし笑 –

関連する問題