如何立即滚动到位置?

启用平滑滚动后,如何使用 JavaScript 立即将窗口滚动到某个位置?


:root {

    scroll-behavior: smooth;

}

有没有办法忽略这个 CSS 规则?像这样的东西:


window.scrollBy({ top: 0, behavior: 'instantly' });


ITMISS
浏览 159回答 3
3回答

浮云间

你去:window.scrollTo({  top: 0,  left: 0,  behavior: 'instant',});

RISEBY

也许你可以scroll-behavior在调用之前设置.scrollBy(),然后在之后重置它。var root = document.querySelector(':root');var btnInstantScroll = document.querySelector('#btnInstantScroll');var btnDefaultScroll = document.querySelector('#btnDefaultScroll');btnInstantScroll.addEventListener('click', function() {&nbsp; // Change scroll behavior&nbsp; root.setAttribute("style", "scroll-behavior: auto;");&nbsp; // Timeout ensures styles are applied before scrolling&nbsp; setTimeout(function() {&nbsp; &nbsp; window.scrollBy(0, -2000);&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; // Reset to CSS defaults.&nbsp; &nbsp; root.removeAttribute("style");&nbsp; }, 0)})btnDefaultScroll.addEventListener('click', function() {&nbsp; window.scrollBy(0, -2000);}):root {&nbsp; scroll-behavior: smooth;}.scrollable {&nbsp; height: 2000px;&nbsp; background: repeating-linear-gradient(#e66465, #e66465 20px, #9198e5 20px, #9198e5 25px);}.controls {&nbsp; padding: 15px;&nbsp; position: fixed;&nbsp; bottom: 0;}<div class="scrollable"></div><div class="controls">&nbsp; <button type="button" id="btnInstantScroll">&nbsp; &nbsp; Instant scroll&nbsp; </button>&nbsp; <button type="button" id="btnDefaultScroll">&nbsp; &nbsp; Scroll using doc settings&nbsp; </button></div>

撒科打诨

&nbsp;scroll-behavior: auto; 不工作。并且 scroll-behavior: instant; 不再存在这是唯一对我有用的东西:html {&nbsp; scroll-behavior: auto !important;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript