2016-05-27 8 views
1

Я пытаюсь сделать так, чтобы img менялся на gif, когда пользователь прокручивается на сайте.jquery on scroll event

HTML

<img src="img/giphy.gif" alt="" id="imgAnimate"> 

Jquery

$(document).ready(function() 
     { 
      $("#imgAnimate").hover(
       function() 
       { 
        $(this).attr("src", "img/giphy.gif"); 
       }, 
       function() 
       { 
        $(this).attr("src", "img/giphy.png"); 
       }); 
     }); 

Я получил это, но теперь, когда вы наведите курсор мыши на IMG он изменяется в GIF. Как это сделать, когда пользователь прокручивает.

Спасибо, если вы можете мне помочь.

+0

Используйте '$ (window) .scroll' вместо' $ ("# imgAnimate"). Hover'. – Mohammad

+0

@Mohammad нет, что не работает –

+0

Вы имеете в виду, когда пользователь прокручивает изображение или прокручивает в целом? –

ответ

1

https://jsfiddle.net/q6Lun0dj/1/

использовать этот скрипт:

(function($) { 
    $(function() { 
    var scrollNow = false; 
    $(window).scroll(function() { 
     if(!scrollNow){ 
     scrollNow = true; 
     $("#imgAnimate").attr("src", "http://bart.aoweb.nl/template%205/img/giphy.gif"); 
     } 
     clearTimeout($.data(this, "scrollCheck")); 
     $.data(this, "scrollCheck", setTimeout(function() { 
     scrollNow = false; 
     $("#imgAnimate").attr("src", "http://bart.aoweb.nl/template%205/img/giphy.png"); 
     }, 250)); 

    }); 

    }); 

})(jQuery); 
+0

Он не работает полностью, как я хочу, это ссылка http://bart.aoweb.nl/template%205/ Это это то, над чем я работаю. Я хочу, чтобы персонаж двигался плавно, но когда вы прокручиваете сейчас, это любопытно, вы знаете, как это исправить? –

+0

Хорошо, я обновил ответ, и я надеюсь, что это то, что вы хотите, также см. Скрипку с вашим настоящим примером здесь. Https://jsfiddle.net/5rharr4h/ –

+0

Спасибо, что он работает :) –

0

В настоящее время вы проверяете, не виден ли изображение и только потом его источник. Вместо этого подключите прослушиватель событий scroll к document.

$(document).on('scroll', callback); 
+0

Не работает ли у вас другой способ? –

1

При прокрутке, вы можете использовать этот код

$(document).ready(function(){ 
     $(window).scroll(function(){ 
       $(this).attr("src", "img/giphy.gif"); 
      }); 
    }); 

при остановке прокрутки вы можете Event when user stops scrolling

+0

Я пробовал этот код, но gif уже перемещается, когда я не прокручиваю, или мне нужно что-то изменить в своем HTML-формате. –

+0

Я думаю, что это может сработать, но с этим кодом он не знает, где разместить gif I gues. –