MouseHover на изображение JQuery

0

Извините плохой английский Я использую переводчика и я за помощь :)

У меня проблема, сценарий отлично подходит для того, что я хочу, чтобы проблема, что как только мышь покинет изображение2-3-4, останется изображение слева (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>
  • 1
    Возможно ли вам попытаться объяснить более подробно, что вы на самом деле пытаетесь достичь?
  • 0
    Если я правильно понимаю, что вы делаете правильно, проблема в том, что ваше событие onmouseout не меняет изображение обратно. Изображение изменяется с помощью onmouseover а затем никогда не возвращается в исходное состояние.
Показать ещё 2 комментария
Теги:
image

2 ответа

0

Что вам нужно сделать, это изменить эту строку:

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

Так что он отменяет все функции change. Так что-то вроде этого.

Изображения [I]. onmouseout = function (evt) {clearInterval (changetimer); changeBack(this); Changeback (это); } }

Где changeBack - это функция, которая делает противоположную функцию change.

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;}
     }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню