2015-07-21 2 views
0

Я пытаюсь переместить слайд один раз, когда я прокручиваю страницу. Но событие прокрутки не останавливается и повторяет событие. Как сделать анимацию для перехода к следующему цвету слайда с scrollTop внутри $(window).scroll только один раз за каждый раз? Смотрите мой Fiddle

И это кусок кода, который не работает :(

$('html, body').animate({ 
    scrollTop: ($(next).offset().top) 
},500); 

Моя цель что-то подобное http://www.sincedilla.com/

+0

Это работает для меня на хроме. У вас есть ошибка? – amiceli

+0

Мне нужно останавливаться на каждом слайде каждый раз, когда я делаю свиток, а затем, если я снова сделаю, он должен перейти к следующему слайду. – lesrpo

+0

То, что вы точно хотите сделать с анимацией.? можете ли вы рассказать.? вы пытаетесь прокручивать гладко или что? –

ответ

1

это, вероятно, что вам нужно. это событие прокрутки до тех пор, пока анимация не будет завершена, документы для анимации читать раздел обратного вызова

$(this).bind('mousewheel', function (e) { 
    if (!animating) { 
     animating = true; 
     if (e.originalEvent.wheelDelta < 0) { 
      next = $(first).next(); 
      first = $(next); 
      // scroll down 
      $("html, body").animate({ 
       scrollTop: ($(next).offset().top) 
      }, 900, function(){ 
       animating = false; 
      }); 
     } else { 
      first = $(next).prev(); 
      next = $(first); 
      // scroll up 
      $("html, body").animate({ 
       scrollTop: ($(first).offset().top) 
      }, 900,function(){ 
       animating = false; 
      }); 
     } 
    } 
    return false; 
}); 

рабочая вилка http://jsfiddle.net/fdbh0no8/

+0

Очень хорошо ... Я просто добавляю некоторые новые вещи ..http: //jsfiddle.net/fdbh0no8/21/... Спасибо за ваше решение @Vanojx ... Я хотел решить проблему, но у меня нет достаточной репутации. :) – lesrpo