经过一天的研究,我发现了这个漂亮的小代码,它可以产生一个超级流畅的滚动页面。
$(document).ready(function() {
jQuery.extend(jQuery.easing, {
easeOutQuint: function(x, t, b, c, d) {
return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
}
});
var wheel = false,
$docH = $(document).height() - $(window).height(),
$scrollTop = $(window).scrollTop();
$(window).bind('scroll', function() {
if (wheel === false) {
$scrollTop = $(this).scrollTop();
}
});
$(document).bind('DOMMouseScroll mousewheel', function(e, delta) {
delta = delta || -e.originalEvent.detail / 3 || e.originalEvent.wheelDelta / 120;
wheel = true;
$scrollTop = Math.min($docH, Math.max(0, parseInt($scrollTop - delta * 30)));
$($.browser.webkit ? 'body' : 'html').stop().animate({
scrollTop: $scrollTop + 'px'
}, 2000, 'easeOutQuint', function() {
wheel = false;
});
return false;
});
});我面临的问题是,从jQuery 1.9开始,$.browser已经被删除了。我试图找到一种变通方法,让它在更新版本的情况下工作,但没有任何结果。提前感谢您的帮助。
发布于 2014-05-07 08:37:40
使用jQuery Migrate。https://github.com/jquery/jquery-migrate/
它拥有从jQuery核心中移除的所有API和功能。
JQuery浏览器就在里面。请看这里:
https://github.com/jquery/jquery-migrate/blob/master/src/core.js#L83
这是来自JQuery的另一个链接,它告诉您可以使用JQuery Migrate,但是如果您使用像这样的东西会更好。
http://jquery.com/upgrade-guide/1.9/#jquery-browser-removed
要使用它,只需将它包含在您的代码中,如下所示:
<script src="http://code.jquery.com/jquery-migrate-1.1.0.js"></script>发布于 2014-05-07 22:26:06
在继续研究之后,我找到了成功创建平滑滚动的代码,而不需要迁移jquery。它似乎在所有浏览器上都能完美地工作。The code was found here
我已经用1.11和2.1版本对其进行了测试。
代码:
if (window.addEventListener) window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;
function wheel(event) {
var delta = 0;
if (event.wheelDelta) delta = event.wheelDelta / 120;
else if (event.detail) delta = -event.detail / 3;
handle(delta);
if (event.preventDefault) event.preventDefault();
event.returnValue = false;
}
function handle(delta) {
var time = 1000;
var distance = 200;
// Dom where it will apply
$('html, body').stop().animate({
scrollTop: $(window).scrollTop() - (distance * delta)
}, time );
}希望这对任何想要解决同样问题的人有所帮助。
https://stackoverflow.com/questions/23506727
复制相似问题