2017-12-07 10 views
0

私はクリック時にDIVの背景を置き換えるために利用される画像の配列を持っています。私は2つのボタン(基本的に順方向と逆方向)を持っていますが、私が達成しようとしているのは、関数を実行する前に配列の最後の位置を維持するための前方(または後方)ボタンです。ナビゲーション中に配列の位置を維持する

var ImagesB = []; 
ImagesB[0]="images/image1.png"; 
ImagesB[1]="images/image2.png"; 
ImagesB[2]="images/image3.png"; 

var i = 1; 

function updateImgB(){ 
    var url = 'url(' + ImagesB[i] + ')'; 
    document.getElementById('DIV1').style.backgroundImage = url; 
    i = (i + 1)%(ImagesB.length); 
} 

function reverseImgB(){ 
    var url = 'url(' + ImagesB[i] + ')'; 
    document.getElementById('DIV1).style.backgroundImage = url; 
    i = (i - 1)%(ImagesB.length); 
    if(i < 0){i = ImagesB.length - 1}; 
} 

現在、この作品、しかし、あなたはupdateImgBを実行例えば言う、それは、配列内の次の番号で終わる、例えば:i + 1、私はreverseImgB機能を実行した場合、したがって、それは次の画像すなわち上で開始されます:2 、それから後方に働くでしょう。現在のイメージから後ろ向きに作業するのは私の意図であり、逆もまた同様です。

助けてください。

答えて

1

だけで画像を変更する前にiから1を引く:

function reverseImgB(){ 
    i = (i - 1)%(ImagesB.length); 
    if(i < 0){i = ImagesB.length - 1}; 
    var url = 'url(' + ImagesB[i] + ')'; 
    document.getElementById('DIV1).style.backgroundImage = url; 
} 
+0

ルカは、ありがとうございました。これはうまくいきます! 1つの問題は、1つの画像を前にナビゲートしてから、元の画像に戻るには2回のクリック、逆の場合は2回のクリックになります。 – Brandon

+0

それでも問題はありますか? – Luca

+0

必ずしもこれが動作するこのコードでこれを行う唯一の方法であれば、そうではありません。コードが、現在進行中の画像に戻す(または転送する)必要がある画像を、配列が現在回避していることを知る方法はありますか? – Brandon

関連する問題