JavaScript新闻上下滚动效果是一种常见的网页动态效果,用于展示新闻标题或其他信息,并使其自动向上或向下滚动。这种效果通常通过定时器和DOM操作来实现。
以下是一个简单的JavaScript实现垂直滚动的示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>News Ticker</title>
<style>
#news-ticker {
width: 100%;
overflow: hidden;
border: 1px solid #ccc;
padding: 10px;
}
.news-item {
white-space: nowrap;
display: inline-block;
}
</style>
</head>
<body>
<div id="news-ticker">
<span class="news-item">Breaking News: JavaScript is awesome!</span>
<span class="news-item">Tech Update: New frameworks released.</span>
<span class="news-item">Sports: Team wins championship!</span>
</div>
<script>
const ticker = document.getElementById('news-ticker');
let tickerWidth = ticker.offsetWidth;
let newsItems = ticker.querySelectorAll('.news-item');
let totalWidth = Array.from(newsItems).reduce((acc, item) => acc + item.offsetWidth, 0);
ticker.innerHTML += ticker.innerHTML; // Clone the content to create a seamless loop
function scrollTicker() {
ticker.scrollLeft += 1;
if (ticker.scrollLeft >= totalWidth / 2) {
ticker.scrollLeft = 0;
}
}
setInterval(scrollTicker, 20);
</script>
</body>
</html>
requestAnimationFrame
代替setInterval
来优化动画效果。white-space
属性设置为nowrap
,并使用display: inline-block
来正确排列元素。通过以上方法,可以有效实现和优化新闻上下滚动效果,提升用户体验。
领取专属 10元无门槛券
手把手带您无忧上云