Javascript ECSS scrollspy油门不工作
我正在用materializecss制作一个单页网站,并使用scrollspy在各个部分之间滚动 这一切都很好,但我希望它滚动慢一点。然而,这个选项似乎不起作用 看看我的问题代码笔 HTMLJavascript ECSS scrollspy油门不工作,javascript,html,materialize,scrollspy,Javascript,Html,Materialize,Scrollspy,我正在用materializecss制作一个单页网站,并使用scrollspy在各个部分之间滚动 这一切都很好,但我希望它滚动慢一点。然而,这个选项似乎不起作用 看看我的问题代码笔 HTML 将throttle设置为10(默认值100)应该会使滚动速度变慢,但默认速度会一直应用。您是否尝试过materialize初始化 这似乎对我有用: <script type="text/javascript" src="js/materialize.js"> document.addEv
将throttle设置为10(默认值100)应该会使滚动速度变慢,但默认速度会一直应用。您是否尝试过materialize初始化 这似乎对我有用:
<script type="text/javascript" src="js/materialize.js">
document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('.scrollspy');
var instances = M.ScrollSpy.init(elems, options);
throttle: 50;
});
</script>
document.addEventListener('DOMContentLoaded',function(){
var elems=document.querySelectorAll('.scrollspy');
var instances=M.ScrollSpy.init(元素、选项);
油门:50;
});
首先要道歉的是,这并不是对您问题的回答,materialize throttle似乎已损坏,因为您的示例在文档中看起来不错,或者我也遗漏了一些东西:)
所以我的问题是,你们为什么要用materialcss来滚动到id页面
这是基本的浏览器功能-如果您在中有href=“#someid”
,我还没有这个问题的答案,但我仔细研究了一下,发现我们有两个问题之一:
1)节流选项确实已断开
2)节流并不意味着控制滚动的速度
如果查看scrollspy组件:
您将看到它使用了下划线.js中的throttle():
- throttle()和getTime()取自下划线.js*
谁说:
throttle\ throttle(函数,等待,[options])创建并返回
传递函数的新的限制版本,在调用时
重复地,实际上最多只调用一次原始函数
每等待一毫秒。适用于以下速率限制事件:
发生的速度比你能跟上的要快
默认情况下,throttle将在您调用它时立即执行该函数
第一次,如果你再叫它几次
在等待期内,一旦等待期结束。如果你愿意
要禁用前沿调用,请传递{leading:false},如果
要禁用后缘上的执行,请传递{training:
错}
var throttled=u0.throttle(更新位置,100);
$(窗口)。滚动(限制)
一般来说,当我过去使用throttle时,就是在短时间内停止重复调用同一个函数。如上所述。因此,它可能不是为了控制滚动的速度
我将在打开一个问题,并试图得到一些澄清。请注意此处。这有两个问题:如果您将此代码复制到提供的代码笔中(即用您的代码笔替换其初始化),则会完全破坏scrollspy的功能。其次,您有作为参数传递的选项,但没有声明任何选项。这将在生产中引发错误。您完全正确!,我为我的错误贡献感到抱歉,我是一个新手。事实上,发生的事情是,我毫不客气地使用了Pegla所说的基本浏览器功能。这是文档的问题,而不是你,每个人都会被它抓住——我已经向开发人员提出了这个问题,但还没有得到承认。99%的gitter频道是我说的“外卖选项”,提问者是“用materializecss制作一个单页网站”——他不仅仅是用materialize来平滑滚动,这将是荒谬的。Scrollspy提供的不仅仅是平滑滚动,例如,根据askers codepen演示,根据位置更新当前链接。
*{
margin: 0!important;
padding: 0;
}
.onepager {
height: 100vh;
}
#page1 {
background: green;
}
#page2 {
background: yellow;
}
#page3 {
background: blue;
}
a.active {
background-color: #222;
}
<script type="text/javascript" src="js/materialize.js">
document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('.scrollspy');
var instances = M.ScrollSpy.init(elems, options);
throttle: 50;
});
</script>
html {
scroll-behavior: smooth;
}
$(document).ready(function(){
$("#nav-mobile>li>a").on('click', function(event) {
if (this.hash !== "") {
event.preventDefault();
var hash = this.hash;
$('html, body').animate({
scrollTop: $(hash).offset().top
},
2300, //time in miliseconds to scroll
function(){
window.location.hash = hash;
});
}
});
});