1
<body>
<script language="JavaScript">
<!--

var backImage = new Array();
backImage[0] = "pics/img02.jpg";
backImage[1] = "pics/img03.jpg";
backImage[2] = "pics/img04.jpg";
backImage[3] = "pics/img05.jpg";

function changeBGImage(whichImage){
if (document.body){
document.body.background = backImage[whichImage];
backImage = backImage++;
}
}

//-->
</script>
<a href="javascript:changeBGImage(2)">Change</a>
</body>

申し訳ありませんが、ここでコードを適切に統合する方法がわかりません。まだ機能していることを願っています。ここでやりたいこと: 次にリンクをクリックしたときに次の背景が表示されるように、バックグラウンド カウンターにプラス 1 を追加するよりも背景を変更します (機能します)。それは非常に単純なはずですが、それでも理解できませんでした...

4

2 に答える 2

1

0 から 3 までカウントする静的カウンターを使用します。

var cnt = 0;

function changeBGImage(){
  if (document.body){
    document.body.background = backImage[cnt];
    cnt = (cnt+1) % 4; // mod 4
  }
}
于 2012-11-17T12:44:11.163 に答える
0

コードにいくつかの問題があります

backImage = backImage++;

期待どおりに増加しませんbackImage。構文は単純でなければなりませんbackImage++;

また、必要な背景画像を設定するにはdocument.body.style.backgrounddocument.body.style.backgroundImage = url(...)

編集

クリックハンドラーを介して背景を循環する以上に、初期背景も設定する必要がある場合は、初期背景をに設定して、以下のようなものを試してくださいwindow.onload

ここにjsFiddle

var backImage = [];
var whichImage = 0;

backImage[0] = "http://dummyimage.com/100x100/000000/000000.png";
backImage[1] = "http://dummyimage.com/100x100/FF0000/000000.png";
backImage[2] = "http://dummyimage.com/100x100/00FF00/000000.png";
backImage[3] = "http://dummyimage.com/100x100/0000FF/000000.png";

function changeBGImage(reseedWhichImage){
    // If caller has specified an exact index, then reseed to this
    if (reseedWhichImage != undefined)
    {
        whichImage = reseedWhichImage;
    }
    if (document.body){
        document.body.style.backgroundImage = "url(" + backImage[whichImage] + ")";
        whichImage++;
        if (whichImage >= 4){
            whichImage = 0;
        }
    }
}

// During global load, set the initial background
window.onload = changeBGImage(2);
​
于 2012-11-17T13:04:28.953 に答える