Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更改滚动速度以使其平滑?_Javascript_Jquery_Css_Wordpress_Animation - Fatal编程技术网

Javascript 如何更改滚动速度以使其平滑?

Javascript 如何更改滚动速度以使其平滑?,javascript,jquery,css,wordpress,animation,Javascript,Jquery,Css,Wordpress,Animation,我偶然发现了这个网站,我喜欢它的滚动功能 我注意到卷轴非常平滑,没有跳跃,给人一种平静的感觉。它以同样的平滑滚动响应我的鼠标滚轮、箭头按钮和空格键。此外,大屏幕上的侧菜单有一个可爱的平滑滚动惯性曲线,可以锚定链接,我认为这是相关的 我试着深入研究代码,我很确定它不是CSS属性,在JS文件中的“滚动”和“视差”上执行control-F显示了结果,但是有太多的引用,我不确定是哪一个控制了这个功能,或者我如何在我自己的项目中复制它。我知道他在使用源文件中的Wordpress和Jquery。毫无疑问,

我偶然发现了这个网站,我喜欢它的滚动功能

我注意到卷轴非常平滑,没有跳跃,给人一种平静的感觉。它以同样的平滑滚动响应我的鼠标滚轮、箭头按钮和空格键。此外,大屏幕上的侧菜单有一个可爱的平滑滚动惯性曲线,可以锚定链接,我认为这是相关的

我试着深入研究代码,我很确定它不是CSS属性,在JS文件中的“滚动”和“视差”上执行control-F显示了结果,但是有太多的引用,我不确定是哪一个控制了这个功能,或者我如何在我自己的项目中复制它。我知道他在使用源文件中的Wordpress和Jquery。毫无疑问,这是一个插件,通过对StackOverflow的挖掘,我发现了“Jquery平滑滚动”()。然而,他们的演示站点()非常紧张,一点也不平稳。我还发现了这个演示()

if(window.addEventListener)window.addEventListener('DOMMouseScroll',wheel,false);
window.onmouseheel=document.onmouseheel=wheel;
功能控制盘(事件){
var-delta=0;
如果(event.wheelDelta)delta=event.wheelDelta/120;
else if(event.detail)delta=-event.detail/3;
手柄(三角形);
if(event.preventDefault)event.preventDefault();
event.returnValue=false;
}
函数句柄(增量){
var时间=1000;
var距离=300;
$('html,body').stop().animate({
scrollTop:$(窗口).scrollTop()-(距离*增量)
},时间);
}
#myDiv{
高度:2000px;
宽度:100px;
背景色:#CCF;
字体系列:“投石机MS”;
字体大小:12px;
线高:24px;
填充物:5px;
保证金:5px;
溢出:隐藏;
}
.boldit{font-weight:bold;}

使用鼠标滚轮(而不是滚动条)滚动此分区。您将看到滚动最终会减慢,然后停止。使用鼠标滚轮(而不是滚动条)滚动此分区。您将看到滚动最终会减慢,然后停止。使用鼠标滚轮(而不是滚动条)滚动此分区。您将看到滚动最终会减慢,然后停止。使用鼠标滚轮(而不是滚动条)滚动此分区。您将看到滚动最终会减慢,然后停止。使用鼠标滚轮(而不是滚动条)滚动此分区。您将看到滚动最终会减慢,然后停止。使用鼠标滚轮(而不是滚动条)滚动此分区。您将看到滚动最终会减慢,然后停止。使用鼠标滚轮(而不是滚动条)滚动此分区。您将看到滚动最终会减慢,然后停止。使用鼠标滚轮(而不是滚动条)滚动此分区。您将看到滚动最终会减慢,然后停止。使用鼠标滚轮(而不是滚动条)滚动此分区。您将看到滚动最终会减慢,然后停止。使用鼠标滚轮(而不是滚动条)滚动此分区。您将看到滚动最终会减慢,然后停止。使用鼠标滚轮(而不是滚动条)滚动此分区。您将看到滚动最终会减慢,然后停止。使用鼠标滚轮(而不是滚动条)滚动此分区。您将看到滚动最终会减慢,然后停止。使用鼠标滚轮(而不是滚动条)滚动此分区。您将看到滚动最终会减慢,然后停止。使用鼠标滚轮(而不是滚动条)滚动此分区。您将看到滚动最终会减慢,然后停止。使用鼠标滚轮(而不是滚动条)滚动此分区。您将看到滚动最终会减慢,然后停止。使用鼠标滚轮(而不是滚动条)滚动此分区。您将看到滚动最终会减慢,然后停止。

该站点似乎正在使用wordpress特定的库来实现其滚动行为。在chrome中,您可以通过在开发者工具中找到源代码并查看全局侦听器下的wheel事件来找到特定代码


网站正在监听的事件列表位于屏幕截图的右侧。打开滚轮显示滚轮的侦听器。单击源代码将打开相应的js文件。它已经缩小了,但chrome应该可以为你提供漂亮的打印效果。如果没有,屏幕右下角会有一个{}按钮,可以很好地打印出来。

看起来该站点正在使用带有以下初始化参数的JavaScript库:

SmoothScroll({
    frameRate: 150,
    animationTime: 1000,
    stepSize: 100,
    pulseAlgorithm: 1,
    pulseScale: 4,
    pulseNormalize: 1,
    accelerationDelta: 50,
    accelerationMax: 3,
    keyboardSupport: 1,
    arrowScroll: 50,
    fixedBackground: 0
});
此库与WordPress无关(除非此站点的某些WordPress插件使用此库),您可以在任何站点上使用它,而不管其后端引擎如何