Добрый день. Использую на сайте скрипт плавной прокрутки, работает везде кроме 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
});
});
});
Спасибо.