我在做一个网站的视差,我想使页面滚动平滑与鼠标滚轮为更好的用户体验。 我能得到最好的例子是这样的网站: http://www.milwaukeepolicenews.com/#menu=home-page这将是巨大的,如果我能得到类似的东西到我的网站,顺利垂直滚动,滚动惯性。
我注意到他们使用的布兰登·艾伦的jQuery的鼠标滚轮,这是非常轻,但我只是一个初学者,不能让它通过自己的工作。
此外,我在他们的MPD-parallax.js注意到了这一点:
jQuery(window).mousewheel(function(event, delta, deltaX, deltaY){
if(delta < 0) page.scrollTop(page.scrollTop() + 65);
else if(delta > 0) page.scrollTop(page.scrollTop() - 65);
return false;
})
谢谢!
编辑
我快到了。 看看这个小提琴: http://jsfiddle.net/gmelcul/cZuym/它只需增加一个宽松的方法来滚动就像密尔沃基警察局网站。
我知道这是一个很老的文章,但这里是我做了一个很好的解决方案:
function handle(delta) {
var animationInterval = 20; //lower is faster
var scrollSpeed = 20; //lower is faster
if (end == null) {
end = $(window).scrollTop();
}
end -= 20 * delta;
goUp = delta > 0;
if (interval == null) {
interval = setInterval(function () {
var scrollTop = $(window).scrollTop();
var step = Math.round((end - scrollTop) / scrollSpeed);
if (scrollTop <= 0 ||
scrollTop >= $(window).prop("scrollHeight") - $(window).height() ||
goUp && step > -1 ||
!goUp && step < 1 ) {
clearInterval(interval);
interval = null;
end = null;
}
$(window).scrollTop(scrollTop + step );
}, animationInterval);
}
}
测试: http://jsfiddle.net/y4swj2ts/3/
这里有两个jsfiddles - 一个用脚本和一个没有它,这样你可以比较:
使用JavaScript 的jQuery插件鼠标滚轮 :
$(document).ready(function() {
var page = $('#content'); // set to the main content of the page
$(window).mousewheel(function(event, delta, deltaX, deltaY){
if (delta < 0) page.scrollTop(page.scrollTop() + 65);
else if (delta > 0) page.scrollTop(page.scrollTop() - 65);
return false;
})
});
比较两个。 从我所知道的,脚本减缓鼠标滚轮所以它需要更多的物理转向滚动相同的距离,而无需脚本。 这可能因为慢滚动的感觉更流畅(它可能确实是平滑的,因为它是可能更容易图形单元)。
退房skrollr 。 这是一个插件创建的视差效果。 当你初始化插件切换平滑滚动它有自己的选择:
var s = skrollr.init({
smoothScrolling: true,
smoothScrollingDuration: 1800
});
嘿,我来到这里的另一个的ressource这是非常简单的使用smoothwheel
它让每一个设备上的鼠标滚轮一个平滑滚动动画和工作完美!
我发现这个插件,它有一些很不错的选择,并在所有主要设备的工作原理http://areaaperta.com/nicescroll/