如何更改网页的默认滚动速度、滚动量、滚动惯性

Posted

技术标签:

【中文标题】如何更改网页的默认滚动速度、滚动量、滚动惯性【英文标题】:How to change default scrollspeed,scrollamount,scrollinertia of a webpage 【发布时间】:2013-01-03 19:03:23 【问题描述】:

我正在尝试更改网页的默认滚动速度,数量和惯性。我google了很多,但没有成功

幸运的是,今天,我找到了a plugin,它允许我们仅在特定的 div 标签内而不是在整个网页中更改滚动速度、数量、惯性。

这是一个基本代码

    $(".I-WILL-APPLY-ONLY HERE").mCustomScrollbar(
 set_width:false, 
set_height:false, 
 horizontalScroll:false, 
scrollInertia:550, 
 SCROLLINERTIA:"easeOutCirc", 
 mouseWheel:"auto", 
  autoDraggerLength:true, 
    scrollButtons: 
enable:false, 
       scrollType:"continuous", 
     SCROLLSPEED:20, 
      SCROLLAMOUNT:40 
     ,
    advanced:
updateOnBrowserResize:true, 
   updateOnContentResize:false, 
      autoExpandHorizontalScroll:false, 
    autoScrollOnFocus:true 
   ,
           callbacks:
     onScrollStart:function(), 
    onScroll:function(), 
onTotalScroll:function(), 
    onTotalScrollBack:function(), 
   onTotalScrollOffset:0, 
whileScrolling:false, 
       whileScrollingInterval:30 
 
   );



<div id="I-WILL-APPLY-ONLY HERE" class="I-WILL-APPLY-ONLY HERE">
A basic height in pixels would be defined for this element and any content appearing here will have a different scrollspeed,inertia.Mentioning heignt of this div element is compulsary,else i wont show the output    </div>

问题是我想要整个页面,而不仅仅是特定的 div 元素。任何帮助将不胜感激。请帮助我

提前致谢

【问题讨论】:

“数量和惯性”是什么意思 在这里尝试滚动,manos.malihu.gr/tuts/custom-scrollbar-plugin/… 这是惯性。 Scrollamount 是每次滚动时滚动的数量/%/像素。滚动量越多,滚动越多(滚动量和滚动速度之间存在细线差异) 我真的无法解释,惯性到底是什么意思,........这里有一个例子loisjeans.com/web2012/es当你滚动时,页面滚动,元素向上移动并缓慢停止。 【参考方案1】:

你可以使用 jQuery 来做到这一点, 看看我的小提琴:http://jsfiddle.net/promatik/NFk2L/

您可以添加滚动事件的事件侦听器,请注意您可能会阻止滚动的默认操作... if (event.preventDefault) event.preventDefault();

然后该事件的处理程序,使用 jQuery animate,将执行滚动...

function handle(delta) 
    var time = 1000;
    var distance = 300;

    $('html, body').stop().animate(
        scrollTop: $(window).scrollTop() - (distance * delta)
    , time );

可以设置时间、距离(也可以添加缓动方法),完整示例见fiddle

【讨论】:

【参考方案2】:

为什么不将你的 HTML 包装在一个容器 div 中并定位它,就像这样:

<div class="container">
  <div id="I-WILL-APPLY-ONLY HERE" class="I-WILL-APPLY-ONLY HERE">
<!-- Content here -->
  </div>
</div>

然后在 jQuery 中定位你的容器类:

$('.container').mCustomScrollbar...

【讨论】:

想详细说明一下吗?举例说明如何做到这一点? 在您的 HTML 中:' ',然后在 jQuery 中使用 $(".container") 最好编辑您的答案,而不是使用评论。所以你可以使用(代码)格式。 这正是我不想要的。我想要整个页面而不是特定元素。 但是(正如我正在尝试的那样,显然没有说出来!)如果你将整个页面包装在容器 div 中,那就可以了。【参考方案3】:

我适应平滑元素 工作:Codepen

$('.smooth').on('mousewheel', function(e)
  wheel(e.originalEvent, this)
)

function wheel(event, elm) 
    var delta = 0;
    if (event.wheelDelta) delta = event.wheelDelta / 120;
    else if (event.detail) delta = -event.detail / 3;

    handle(delta, elm);
    if (event.preventDefault) event.preventDefault();
    event.returnValue = false;


function handle(delta, elm) 
    var time = 1000;
      var distance = 100;

    $(elm).stop().animate(
        scrollTop: $(elm).scrollTop() - (distance * delta)
    , time );

【讨论】:

以上是关于如何更改网页的默认滚动速度、滚动量、滚动惯性的主要内容,如果未能解决你的问题,请参考以下文章

滚动字幕

如何更改滚动视图中元素的滚动速度

有没有html代码能让网页的横向滚动条默认居中?

html网页中图片横向滚动

如何在网页的文本框中加滚动条

滚动标签,单位,