豎向列表滾動
當前動畫,黑色框一屏顯示三條數據 可修改黑色框的高度,即可顯示一條數據
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>列表無縫滾動</title>
</head>
<style>
* {
margin: 0;
padding: 0;
}
div {
width: 100px;
height: 50px;
overflow: hidden;
margin: 50px auto;
border: 1px solid #000;
text-align: center;
}
</style>
<body>
<div id="wrapper">
<ul id="content">
<li>11111</li>
<li>22222</li>
<li>33333</li>
<li>44444</li>
<li>55555</li>
<li>66666</li>
</ul>
<ul id="fakeContent"></ul>
</div>
</body>
<script>
var content = document.getElementById("content");
var fakeContent = document.getElementById("fakeContent");
var wrapper = document.getElementById("wrapper");
function roll(t) {
fakeContent.innerHTML = content.innerHTML;
// 開始無滾動時設爲0
wrapper.scrollTop = 0;
// 設置定時器,參數t用在這爲間隔時間(單位毫秒),參數t越小,滾動速度越快
var timer = setInterval(rollStart, t);
// 鼠標移入div時暫停滾動
wrapper.onmouseover = function() {
clearInterval(timer);
timer = null
};
// 鼠標移出div後繼續滾動
wrapper.onmouseout = function() {
timer = setInterval(rollStart, t);
}
}
// 開始滾動函數
function rollStart() {
// 正常滾動不斷給scrollTop的值+1,當滾動高度大於列表內容高度時恢復爲0
if (wrapper.scrollTop >= content.scrollHeight) {
wrapper.scrollTop = 0;
} else {
wrapper.scrollTop++;
}
}
window.onload = roll(50);
</script>
</html>
橫向列表滾動
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>列表無縫滾動</title>
</head>
<style>
* {
margin: 0;
padding: 0;
}
#wrapper {
width: 900px;
overflow: hidden;
margin: 50px auto;
border: 1px solid #000;
display: flex;
}
.inner {
display: flex;
}
li {
width: 150px;
list-style: none;
height: 50px;
text-align: center;
line-height: 50px;
}
</style>
<body>
<div id="wrapper">
<ul id="content" class="inner">
<li>11111</li>
<li>22222</li>
<li>33333</li>
<li>44444</li>
<li>55555</li>
<li>66666</li>
</ul>
<ul id="fakeContent" class="inner"></ul>
</div>
</body>
<script>
var content = document.getElementById("content");
var fakeContent = document.getElementById("fakeContent");
var wrapper = document.getElementById("wrapper");
function roll(t) {
fakeContent.innerHTML = content.innerHTML;
// 開始無滾動時設爲0
wrapper.scrollTop = 0;
// 設置定時器,參數t用在這爲間隔時間(單位毫秒),參數t越小,滾動速度越快
var timer = setInterval(rollStart, t);
// 鼠標移入div時暫停滾動
wrapper.onmouseover = function() {
clearInterval(timer);
timer = null
};
// 鼠標移出div後繼續滾動
wrapper.onmouseout = function() {
timer = setInterval(rollStart, t);
}
}
// 開始滾動函數
function rollStart() {
// 正常滾動不斷給scrollTop的值+1,當滾動高度大於列表內容高度時恢復爲0
if (wrapper.scrollLeft >= content.scrollWidth) {
wrapper.scrollLeft = 0;
} else {
wrapper.scrollLeft++;
}
}
window.onload = roll(50);
</script>
</html>