有没有办法让window.scroll如果没有按钮的onclick事件触发,可以在vanilla js中顺利跳转到某个类?
if(i <0) {
window.scrollTo(0, document.querySelector(".site-header- wrapper").offsetTop);
}
我试过像这样把东西放在一起,但坦率地说我不知道我在做什么
if(i <0) {
window.addEventListener("scroll", function() {
var n = 0;
var int = setInterval(function() {
window.scrollTo(0, n);
n -= 10;
if (n <= document.querySelector(".site-header-wrapper").offsetTop) clearInterval(int);
}, 20);
})
}
答案 0 :(得分:2)
取决于您是否愿意在某些浏览器中省略平滑滚动,但您可以执行类似
的操作body {
display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
display: -ms-flexbox; /* TWEENER - IE 10 */
display: -webkit-flex; /* NEW - Chrome */
display: flex; /* NEW, Spec - Opera 12.1, Firefox 20+ */
}
这将在最新的Firefox和Chrome中顺畅滚动,但会立即在IE,Edge和Safari中跳转。
它与document.querySelector(".site-header-wrapper").scrollIntoView({
behavior: "smooth"
});
不完全相同,但可能是可接受的替代品。否则,您必须使用JavaScript管理动画,例如根据评论中的链接。