div定時動態滾動列表
阿新 • • 發佈:2020-12-12
技術標籤:javascriptjqueryjs
示例
每3秒列表向下滾動一行,每行高度為32,觸底或觸頂後自動反向滾動!
以下為呼叫方法
autoScroll(32,32,3000,document.getElementById('hyjbqk'));
/**
* stepLength:一次滾動步長
* speed:滾動速度
* delay:停留時間
* element:Element物件
*
* element.offsetHeight 元素的畫素高度(包括邊框和填充)
* element.scrollTop 元素的內容垂直滾動的畫素
* element.scrollHeight 元素的高度(包括帶滾動條的隱蔽的地方)
*/
function autoScroll(stepLength, speed, delay, element) {
let interval;
let step = 1;
element.scrollTop = 0;
function start() {
element.scrollTop += step;
interval = setInterval(scrolling, speed);
}
function scrolling() {
if (element.scrollTop % stepLength !== 0 && element.scrollTop != (element.scrollHeight - element.offsetHeight)) {
element.scrollTop += step
} else {
if (element.scrollTop === 0 || element.scrollTop === (element.scrollHeight - element.offsetHeight)) { // 觸頂或觸底
step *= -1 // 轉換方向
}
clearInterval(interval)
setTimeout(start, delay)
}
}
if (element.offsetHeight !== element.scrollHeight) { // 元素內容沒有溢位時,不觸發
setTimeout(start, delay)
}
}