0

下手な英語で失礼します。私は翻訳者を使っています。助けてください :)

問題があります。スクリプトは、マウスが画像を離れるとすぐに、最初の画像ではなく、左の画像 (2-3-4) のままであるという問題が必要です。

    <script type="text/javascript">
    var changetimer;

    function change (id) {
        clearInterval (changetimer);
        function swap() {
            if ( id.src.match ( " images/img1.jpg ")) { = id.src id.src.replace ( " images/img1.jpg ", " images/img2.jpg ") return false; }
            if ( id.src.match ( " images/img2.jpg ")) { = id.src id.src.replace ( " images/img2.jpg ", " images/img3.jpg ") return false; }
            if ( id.src.match ( " images/img3.jpg ")) { = id.src id.src.replace ( " images/img3.jpg ", " images/img4.jpg ") return false; }
            if ( id.src.match ( " images/img4.jpg ")) { = id.src id.src.replace ( " images/img4.jpg ", " images/img1.jpg ") return false; }

        }
        changetimer = setInterval ( Swap , 1500 ) ;
    }

    window.onload = function () {
        var images = document.getElementsByTagName('img');
        for (var i = 0; i < images.length ; i + +) {
            images[i]. onmouseover = function (evt) { change (this) ;}
            images[i]. onmouseout = function (evt) { clearInterval (changetimer); }
        }
    }
    </script>
4

2 に答える 2

0

非常に多くの if ステートメントを使用する代わりに、次のように記述できます。

var array = [];
var images = document.getElementsByTagName ( ' img ');

for (var i=0;i<images.length;i++) {
     array[i] = i;
     images[i].onmouseover = function () { 
        var timer = setInterval(function(){
           array[i]+= 1;
           this.src="images/img"+array[i]+".jpg";
        },1500);
        this.onmouseout = function () { clearInterval (timer); this.onmouseout=null;}
     }
}
于 2013-10-09T15:37:27.920 に答える
0

あなたがする必要があるのは、この行を変更することです:

images[i]. onmouseout = function (evt) { clearInterval (changetimer); }

changeそのため、関数が行うことは何でも元に戻します。だから、このようなもの。

画像[i]。onmouseout = 関数 (evt) { clearInterval (changetimer); changeBack(これ); }

changeBack関数が行うことの反対を行う関数はどこにありますかchange

于 2013-10-09T20:43:28.137 に答える