gpt4 book ai didi

javascript - `scroll` eventListener 给出 `window.scrollY` 之间的大间隔

转载 作者:行者123 更新时间:2023-11-30 09:58:52 24 4
gpt4 key购买 nike

我正在处理 scroll eventListener 以获得滚动顶点,然后执行一些操作。

代码看起来很简单:

window.addEventListener('scroll', function (e) {
console.log(window.scrollY)
})

虽然,当我快速滚动时,控制台在点之间给出了非常大的间隔

1
60
220
498
787
1157
1844
2161
2458
2741
4158
4277

这几乎不会延迟我的行动。

例如,如果我需要这样做:

window.addEventListener('scroll', function (e) {
if (window.scrollY > elem.getBoundingClientRect().top) {
elem.style.position = 'fixed';
elem.style.top = 0;
}
})

它在一小段延迟后固定元素。

我不确定,也许这对浏览器来说是繁重的操作,但有人知道更好的方法吗?

也欢迎使用 jQuery 回答。

谢谢!

最佳答案

我遇到过这样的问题。那么,在这种情况下,您需要给静态父类一个类并使用该类,您需要通过将其设置为 position: fixed 来定位固定元素,并计算 offsetTop.

window.onload = function () {
window.addEventListener('scroll', function (e) {
elem = document.querySelector("#parent");
if (window.scrollY > elem.offsetTop) {
elem.classList.add('fixed');
}
else {
elem.classList.remove('fixed');
}
});
};
h1 {margin: 0; padding: 0;}
.fixed h1 {position: fixed; top: 0; width: 100%; background: #fff;}
<p><b>Microsoft Corporation</b> <span class="nowrap"><span class="IPA nopopups"><a href="/wiki/Help:IPA_for_English" title="Help:IPA for English">/<span style="border-bottom:1px dotted"><span title="/ˈ/ primary stress follows">ˈ</span><span title="'m' in 'my'">m</span><span title="/aɪ/ long 'i' in 'tide'">aɪ</span><span title="'k' in 'kind'">k</span><span title="'r' in 'rye'">r</span><span title="/ɵ/ variable 1st 'o' in 'omission'">ɵ</span><span title="'s' in 'sigh'">s</span><span title="/ɒː/ variable 'o' as in 'coffee'">ɒː</span><span title="'f' in 'find'">f</span><span title="'t' in 'tie'">t</span></span>/</a></span></span> (commonly referred to as <b>Microsoft</b>) is an American <a href="/wiki/Multinational_corporation" title="Multinational corporation">multinational</a> <a href="/wiki/Technology_company" title="Technology company">technology company</a> headquartered in <a href="/wiki/Redmond,_Washington" title="Redmond, Washington">Redmond</a>, <a href="/wiki/Washington_(state)" title="Washington (state)">Washington</a>, that develops, manufactures, licenses, supports and sells <a href="/wiki/Computer_software" title="Computer software" class="mw-redirect">computer software</a>, <a href="/wiki/Consumer_electronics" title="Consumer electronics">consumer electronics</a> and <a href="/wiki/Personal_computers" title="Personal computers" class="mw-redirect">personal computers</a> and services. Its best known software products are the <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> line of <a href="/wiki/Operating_systems" title="Operating systems" class="mw-redirect">operating systems</a>, <a href="/wiki/Microsoft_Office" title="Microsoft Office">Microsoft Office</a> <a href="/wiki/Office_suite" title="Office suite" class="mw-redirect">office suite</a>, and <a href="/wiki/Internet_Explorer" title="Internet Explorer">Internet Explorer</a> and <a href="/wiki/Microsoft_Edge" title="Microsoft Edge">Edge</a> <a href="/wiki/Web_browser" title="Web browser">web browsers</a>. Its flagship hardware products are the <a href="/wiki/Xbox" title="Xbox">Xbox</a> game consoles and the <a href="/wiki/Microsoft_Surface" title="Microsoft Surface">Microsoft Surface</a> tablet lineup. It is the <a href="/wiki/List_of_the_largest_software_companies" title="List of the largest software companies">world's largest software maker</a> measured by revenues. It is also one of the <a href="/wiki/List_of_corporations_by_market_capitalization" title="List of corporations by market capitalization" class="mw-redirect">world's most valuable companies</a>.</p>
<div id="parent">
<h1>I will be fixed later!</h1>
</div>
<p>Microsoft was founded by <a href="/wiki/Paul_Allen" title="Paul Allen">Paul Allen</a> and <a href="/wiki/Bill_Gates" title="Bill Gates">Bill Gates</a> on April 4, 1975, to develop and sell <a href="/wiki/BASIC" title="BASIC">BASIC</a> <a href="/wiki/Interpreter_(computer_software)" title="Interpreter (computer software)" class="mw-redirect">interpreters</a> for <a href="/wiki/Altair_8800" title="Altair 8800">Altair 8800</a>. It rose to dominate the <a href="/wiki/Personal_computer" title="Personal computer">personal computer</a> <a href="/wiki/Operating_system" title="Operating system">operating system</a> market with <a href="/wiki/MS-DOS" title="MS-DOS">MS-DOS</a> in the mid-1980s, followed by <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a>. The company's 1986 <a href="/wiki/Initial_public_offering" title="Initial public offering">initial public offering</a>, and subsequent rise in its share price, created three billionaires and an estimated 12,000 millionaires from Microsoft employees. Since the 1990s, it has increasingly diversified from the operating system market and has <a href="/wiki/List_of_mergers_and_acquisitions_by_Microsoft" title="List of mergers and acquisitions by Microsoft">made a number of corporate acquisitions</a>. In May 2011, Microsoft acquired <a href="/wiki/Skype_Technologies" title="Skype Technologies">Skype Technologies</a> for $8.5 billion in its largest acquisition to date.</p>
<p>As of 2015, Microsoft is market dominant in both the <a href="/wiki/IBM_PC-compatible" title="IBM PC-compatible" class="mw-redirect">IBM PC-compatible</a> operating system (while it lost the majority of the overall operating system market to <a href="/wiki/Android_(operating_system)" title="Android (operating system)">Android</a>) and <a href="/wiki/Office_software_suite" title="Office software suite" class="mw-redirect">office software suite</a> markets (the latter with <a href="/wiki/Microsoft_Office" title="Microsoft Office">Microsoft Office</a>). The company also produces a wide range of other software for desktops and servers, and is active in areas including <a href="/wiki/Web_search_engine" title="Web search engine">Internet search</a> (with <a href="/wiki/Bing" title="Bing">Bing</a>), the <a href="/wiki/Video_game_industry" title="Video game industry">video game industry</a> (with the <a href="/wiki/Xbox_(console)" title="Xbox (console)">Xbox</a>, <a href="/wiki/Xbox_360" title="Xbox 360">Xbox 360</a> and <a href="/wiki/Xbox_One" title="Xbox One">Xbox One</a> consoles), the digital services market (through <a href="/wiki/MSN" title="MSN">MSN</a>), and mobile phones (via the operating systems of Nokia's former phones and <a href="/wiki/Windows_Phone" title="Windows Phone">Windows Phone</a> OS). In June 2012, Microsoft entered the personal computer production market for the first time, with the launch of the <a href="/wiki/Microsoft_Surface" title="Microsoft Surface">Microsoft Surface</a>, a line of <a href="/wiki/Tablet_computer" title="Tablet computer">tablet computers</a>.</p>
<p>With the acquisition of Nokia's devices and services division to form <a href="/wiki/Microsoft_Mobile" title="Microsoft Mobile">Microsoft Mobile Oy</a>, the company re-entered the smartphone hardware market, after its previous attempt, <a href="/wiki/Microsoft_Kin" title="Microsoft Kin">Microsoft Kin</a>, which resulted from their acquisition of <a href="/wiki/Danger_(company)" title="Danger (company)">Danger Inc.</a></p>
<p>Microsoft is a portmanteau of the words <b>micro</b>computer and <b>soft</b>ware.</p>
<p><b>Microsoft Corporation</b> <span class="nowrap"><span class="IPA nopopups"><a href="/wiki/Help:IPA_for_English" title="Help:IPA for English">/<span style="border-bottom:1px dotted"><span title="/ˈ/ primary stress follows">ˈ</span><span title="'m' in 'my'">m</span><span title="/aɪ/ long 'i' in 'tide'">aɪ</span><span title="'k' in 'kind'">k</span><span title="'r' in 'rye'">r</span><span title="/ɵ/ variable 1st 'o' in 'omission'">ɵ</span><span title="'s' in 'sigh'">s</span><span title="/ɒː/ variable 'o' as in 'coffee'">ɒː</span><span title="'f' in 'find'">f</span><span title="'t' in 'tie'">t</span></span>/</a></span></span> (commonly referred to as <b>Microsoft</b>) is an American <a href="/wiki/Multinational_corporation" title="Multinational corporation">multinational</a> <a href="/wiki/Technology_company" title="Technology company">technology company</a> headquartered in <a href="/wiki/Redmond,_Washington" title="Redmond, Washington">Redmond</a>, <a href="/wiki/Washington_(state)" title="Washington (state)">Washington</a>, that develops, manufactures, licenses, supports and sells <a href="/wiki/Computer_software" title="Computer software" class="mw-redirect">computer software</a>, <a href="/wiki/Consumer_electronics" title="Consumer electronics">consumer electronics</a> and <a href="/wiki/Personal_computers" title="Personal computers" class="mw-redirect">personal computers</a> and services. Its best known software products are the <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> line of <a href="/wiki/Operating_systems" title="Operating systems" class="mw-redirect">operating systems</a>, <a href="/wiki/Microsoft_Office" title="Microsoft Office">Microsoft Office</a> <a href="/wiki/Office_suite" title="Office suite" class="mw-redirect">office suite</a>, and <a href="/wiki/Internet_Explorer" title="Internet Explorer">Internet Explorer</a> and <a href="/wiki/Microsoft_Edge" title="Microsoft Edge">Edge</a> <a href="/wiki/Web_browser" title="Web browser">web browsers</a>. Its flagship hardware products are the <a href="/wiki/Xbox" title="Xbox">Xbox</a> game consoles and the <a href="/wiki/Microsoft_Surface" title="Microsoft Surface">Microsoft Surface</a> tablet lineup. It is the <a href="/wiki/List_of_the_largest_software_companies" title="List of the largest software companies">world's largest software maker</a> measured by revenues. It is also one of the <a href="/wiki/List_of_corporations_by_market_capitalization" title="List of corporations by market capitalization" class="mw-redirect">world's most valuable companies</a>.</p>
<p>Microsoft was founded by <a href="/wiki/Paul_Allen" title="Paul Allen">Paul Allen</a> and <a href="/wiki/Bill_Gates" title="Bill Gates">Bill Gates</a> on April 4, 1975, to develop and sell <a href="/wiki/BASIC" title="BASIC">BASIC</a> <a href="/wiki/Interpreter_(computer_software)" title="Interpreter (computer software)" class="mw-redirect">interpreters</a> for <a href="/wiki/Altair_8800" title="Altair 8800">Altair 8800</a>. It rose to dominate the <a href="/wiki/Personal_computer" title="Personal computer">personal computer</a> <a href="/wiki/Operating_system" title="Operating system">operating system</a> market with <a href="/wiki/MS-DOS" title="MS-DOS">MS-DOS</a> in the mid-1980s, followed by <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a>. The company's 1986 <a href="/wiki/Initial_public_offering" title="Initial public offering">initial public offering</a>, and subsequent rise in its share price, created three billionaires and an estimated 12,000 millionaires from Microsoft employees. Since the 1990s, it has increasingly diversified from the operating system market and has <a href="/wiki/List_of_mergers_and_acquisitions_by_Microsoft" title="List of mergers and acquisitions by Microsoft">made a number of corporate acquisitions</a>. In May 2011, Microsoft acquired <a href="/wiki/Skype_Technologies" title="Skype Technologies">Skype Technologies</a> for $8.5 billion in its largest acquisition to date.</p>
<p>As of 2015, Microsoft is market dominant in both the <a href="/wiki/IBM_PC-compatible" title="IBM PC-compatible" class="mw-redirect">IBM PC-compatible</a> operating system (while it lost the majority of the overall operating system market to <a href="/wiki/Android_(operating_system)" title="Android (operating system)">Android</a>) and <a href="/wiki/Office_software_suite" title="Office software suite" class="mw-redirect">office software suite</a> markets (the latter with <a href="/wiki/Microsoft_Office" title="Microsoft Office">Microsoft Office</a>). The company also produces a wide range of other software for desktops and servers, and is active in areas including <a href="/wiki/Web_search_engine" title="Web search engine">Internet search</a> (with <a href="/wiki/Bing" title="Bing">Bing</a>), the <a href="/wiki/Video_game_industry" title="Video game industry">video game industry</a> (with the <a href="/wiki/Xbox_(console)" title="Xbox (console)">Xbox</a>, <a href="/wiki/Xbox_360" title="Xbox 360">Xbox 360</a> and <a href="/wiki/Xbox_One" title="Xbox One">Xbox One</a> consoles), the digital services market (through <a href="/wiki/MSN" title="MSN">MSN</a>), and mobile phones (via the operating systems of Nokia's former phones and <a href="/wiki/Windows_Phone" title="Windows Phone">Windows Phone</a> OS). In June 2012, Microsoft entered the personal computer production market for the first time, with the launch of the <a href="/wiki/Microsoft_Surface" title="Microsoft Surface">Microsoft Surface</a>, a line of <a href="/wiki/Tablet_computer" title="Tablet computer">tablet computers</a>.</p>
<p>With the acquisition of Nokia's devices and services division to form <a href="/wiki/Microsoft_Mobile" title="Microsoft Mobile">Microsoft Mobile Oy</a>, the company re-entered the smartphone hardware market, after its previous attempt, <a href="/wiki/Microsoft_Kin" title="Microsoft Kin">Microsoft Kin</a>, which resulted from their acquisition of <a href="/wiki/Danger_(company)" title="Danger (company)">Danger Inc.</a></p>
<p>Microsoft is a portmanteau of the words <b>micro</b>computer and <b>soft</b>ware.</p>

关于javascript - `scroll` eventListener 给出 `window.scrollY` 之间的大间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32661571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com