jquery的垂直滚轮平滑滚动(jquery vertical mousewheel smooth

2019-07-20 00:37发布

我在做一个网站的视差,我想使页面滚动平滑与鼠标滚轮为更好的用户体验。 我能得到最好的例子是这样的网站: 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/它只需增加一个宽松的方法来滚动就像密尔沃基警察局网站。

Answer 1:

我知道这是一个很老的文章,但这里是我做了一个很好的解决方案:

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/



Answer 2:

这里有两个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;
    })
});

比较两个。 从我所知道的,脚本减缓鼠标滚轮所以它需要更多的物理转向滚动相同的距离,而无需脚本。 这可能因为慢滚动的感觉更流畅(它可能确实是平滑的,因为它是可能更容易图形单元)。



Answer 3:

退房skrollr 。 这是一个插件创建的视差效果。 当你初始化插件切换平滑滚动它有自己的选择:

var s = skrollr.init({
    smoothScrolling: true,
    smoothScrollingDuration: 1800
});


Answer 4:

嘿,我来到这里的另一个的ressource这是非常简单的使用smoothwheel

它让每一个设备上的鼠标滚轮一个平滑滚动动画和工作完美!



Answer 5:

我发现这个插件,它有一些很不错的选择,并在所有主要设备的工作原理http://areaaperta.com/nicescroll/



文章来源: jquery vertical mousewheel smooth scrolling