我有一个简单的代码,自动滚动段落水平。这可能会得到看起来像是"突发新闻"的一些门户网站。
现在我的Javascript脚本将自动滚动,但当他得到结束滚动将结束。
我尝试了该选项,当它得到结束快速滚动的存在,但这不是顺利的选择。
有没有任何选项可以让我顺利地循环这些滚动的段落?
const flavoursContainer = document.getElementById('flavoursContainer');
const flavoursScrollWidth = flavoursContainer.scrollWidth;
window.addEventListener('load', () => {
self.setInterval(() => {
if (flavoursContainer.scrollLeft !== flavoursScrollWidth) {
flavoursContainer.scrollTo(flavoursContainer.scrollLeft + 1, 0);
}
}, 15);
});
.container {
width: 100vw;
overflow-x: scroll;
white-space: nowrap;
background-color: #fff;
display: flex;
-ms-overflow-style: none;
scrollbar-width: none;
}
.scroll-disabler {
width: 100vw;
height: 34.4px;
position: absolute;
background-color: rgba(0,0,0 , 0.0001);
}
::-webkit-scrollbar {
display: none;
}
p {
padding: 8px;
}
<div class="container" id="flavoursContainer">
<div class="scroll-disabler"></div>
<p>Vyskúšajte Vyskúšajte Vyskúšajtee Vyskúšajte Vyskúšajte Vyskúšajtee Vyskúšajte Vyskúšajte Vyskúšajtee</p>
<p>Vyskúšajte Vyskúšajte Vyskúšajte Vyskúšajte Vyskúšajte Vyskúšajte Vyskúšajte Vyskúšajte Vyskúšajte</p>
</div>
2条答案
按热度按时间qhhrdooz1#
我会这么做:
isElementInViewport(el)
,当元素滚动到视野之外时,该函数将返回false。您可以在下面看到一个工作片段:
ldioqlga2#
我认为这可以通过使用html的
marquee
标签和一点css来完成。我知道它已经过时了,但是所有主要的浏览器仍然支持它。您可以在doc中阅读有关字幕的更多信息