Показать сообщение отдельно
  #1 (permalink)  
Старый 03.12.2015, 18:21
Интересующийся
Отправить личное сообщение для Vyacheslav.Y Посмотреть профиль Найти все сообщения от Vyacheslav.Y
 
Регистрация: 01.11.2015
Сообщений: 23

Помогите "соединить" два скрипта
Добрый день. Использую на сайте скрипт плавной прокрутки, работает везде кроме firfox, после последнего обновления отказывается вообще скролить сайт. Нашел другой скрипт, но мне не нравится как именно осуществляется скролл, скролит плавно, но рывками, зато работает в firefox. Нужна помощь, как сделать так, чтобы первый скрипт работал в Firefox на примере 2. И еще вопрос мб не совсем по этой теме, прошу объяснить что делает this в первом скрипте? (искал в интернете, но так и не смог разобраться)
Первый скрипт: http://codepen.io/anon/pen/xZKNeR
window.requestAnimFrame = (function(){
  return  window.requestAnimationFrame       ||
          window.webkitRequestAnimationFrame ||
          window.mozRequestAnimationFrame    ||
          function( callback ){
            window.setTimeout(callback, 1000 / 60);
          };
})();

var SmoothScroll = function(){
  this.init();
};

SmoothScroll.prototype = {
  dirOfChange: 0,
  scrollTop: 0,
  init: function(){
    this.bindEvents();
    this.render();
  },
  bindEvents: function(){
    var self = this;
    $('html, body').on('mousewheel', function(e){
      e.preventDefault();
      var change = e.originalEvent.wheelDelta/120 || -e.originalEvent.detail/3; 
      change = change * 7; 
      self.scrollTop -= change;
      
      if(change > 0){
        self.dirOfChange = -1;
      }else{
        self.dirOfChange = 1;
      }
    });
  },
  render: function(){
    var self = this;
    window.requestAnimFrame(function(){      
      self.render();
    }); 
    
    if (this.dirOfChange < 0) {
      if (this.scrollTop > -1) {
        this.scrollTop = 0;
        return;
      }
    } else {
      if (this.scrollTop < 1) {
        this.scrollTop = 0;
        return;
      }
    }
    
    TweenMax.set($('html, body'), {
      scrollTop: "+=" + this.scrollTop
    });

    this.scrollTop *= 0.9;
  }
};
var ss = new SmoothScroll();


Второй скрипт: http://codepen.io/bassta/pen/LovFG
$(function(){
	
	var $window = $(window);		//Window object
	
	var scrollTime = 1.2;			//Scroll time
	var scrollDistance = 170;		//Distance. Use smaller value for shorter scroll and greater value for longer scroll
		
	$window.on("mousewheel DOMMouseScroll", function(event){
		
		event.preventDefault();	
										
		var delta = event.originalEvent.wheelDelta/120 || -event.originalEvent.detail/3;
		var scrollTop = $window.scrollTop();
		var finalScroll = scrollTop - parseInt(delta*scrollDistance);
			
		TweenMax.to($window, scrollTime, {
			scrollTo : { y: finalScroll, autoKill:true },
				ease: Power1.easeOut,	//For more easing functions see [url]http://api.greensock.com/js/com/greensock/easing/package-detail.html[/url]
				autoKill: true,
				overwrite: 5							
			});
					
	});
	
});


Спасибо.

Последний раз редактировалось Vyacheslav.Y, 03.12.2015 в 18:33.
Ответить с цитированием