js實(shí)現(xiàn)滾動(dòng)條自動(dòng)滾動(dòng)
本文實(shí)例為大家分享了js實(shí)現(xiàn)滾動(dòng)條自動(dòng)滾動(dòng)的具體代碼,供大家參考,具體內(nèi)容如下
效果類似于直播網(wǎng)站的評(píng)論,會(huì)一條接著一條向上 go out ;
js部分很簡(jiǎn)單:通過(guò)控制scrollTop的值來(lái)實(shí)現(xiàn)自動(dòng)滾動(dòng)效果;
很重要兩點(diǎn):
1、scrollTop的值不可以加單位,謹(jǐn)記!
2、網(wǎng)頁(yè)縮放比例會(huì)影響效果實(shí)現(xiàn)(下面具體說(shuō));
scrollTop需要注意的三點(diǎn):
1、如果這個(gè)元素沒(méi)有被溢出,scrollTop為0;
2、設(shè)置的scrollTop值小于0,則scrollTop的值為0
3、如果設(shè)置scrollTop的值超出了這個(gè)容器滾動(dòng)的值,則scrollTop的值為容器最大值
js部分:
(function () {
// 獲取父盒子(肯定有滾動(dòng)條)
var parent = document.getElementById('parent');
// 獲取子盒子(高度肯定比父盒子大)
var child1 = document.getElementById('child1');
var child2 = document.getElementById('child2');
// 第一個(gè)子盒子內(nèi)容復(fù)制一遍給第二個(gè)子盒子,產(chǎn)生循環(huán)視覺(jué),輔助作用
// 可以注釋下這條代碼,看會(huì)出現(xiàn)什么情況
child2.innerHTML = child1.innerHTML;
// 設(shè)置定時(shí)器,時(shí)間即為滾動(dòng)速度
setInterval(function () {
if(parent.scrollTop >= child1.scrollHeight) {
parent.scrollTop = 0;
} else {
// 如果存在網(wǎng)頁(yè)縮放,很有可能沒(méi)有效果,但是else部分的代碼會(huì)執(zhí)行
// 原因:剛才講到的scrollTop三個(gè)注意中標(biāo)黃的一條
// 設(shè)置scrollTop的值小于0,即scrollTop被設(shè)為0
// 可以縮放跑一下,然后不刷新的狀態(tài)下恢復(fù)百分之百跑一下,再縮放,打印scrollTop的值
// 你會(huì)發(fā)現(xiàn)正常尺寸執(zhí)行時(shí)打印的第一個(gè)值不是加法,而是減法,即scrollTop++增加負(fù)值
// 這樣的話就對(duì)應(yīng)上了scrollTop的注意點(diǎn)了,增加的值小于0,就被設(shè)為0
parent.scrollTop++;
}
}, 20);
})()
下面是完整demo,拉走直接看效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>autoScroll</title>
</head>
<style>
.parent {
width: 300px;
height: 200px;
margin: 0 auto;
background: #242424;
overflow-y: scroll;
}
/*設(shè)置的子盒子高度大于父盒子,產(chǎn)生溢出效果*/
.child {
height: auto;
}
.child li {
height: 50px;
margin: 2px 0;
background: #009678;
}
</style>
<body>
<div id="parent" class="parent">
<div id="child1" class="child">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</div>
<div id="child2" class="child"></div>
</div>
<script type="text/javascript">
(function () {
var parent = document.getElementById('parent');
var child1 = document.getElementById('child1');
var child2 = document.getElementById('child2');
child2.innerHTML = child1.innerHTML;
setInterval(function () {
if(parent.scrollTop >= child1.scrollHeight) {
parent.scrollTop = 0;
} else {
parent.scrollTop++;
}
}, 20);
})()
</script>
</body>
</html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 原生js實(shí)現(xiàn)自定義滾動(dòng)條組件
- 原生js實(shí)現(xiàn)自定義滾動(dòng)條
- Vue.js桌面端自定義滾動(dòng)條組件之美化滾動(dòng)條VScroll
- JS自定義滾動(dòng)條效果
- JavaScript實(shí)現(xiàn)簡(jiǎn)易聊天對(duì)話框(加滾動(dòng)條)
- js滾輪事件 js自定義滾動(dòng)條的實(shí)現(xiàn)
- JS實(shí)現(xiàn)滾動(dòng)條觸底加載更多
- 使用js實(shí)現(xiàn)一個(gè)簡(jiǎn)單的滾動(dòng)條過(guò)程解析
- layer.js open 隱藏滾動(dòng)條的例子
- vue 純js監(jiān)聽滾動(dòng)條到底部的實(shí)例講解
- JavaScript 獲取滾動(dòng)條位置并將頁(yè)面滑動(dòng)到錨點(diǎn)
相關(guān)文章
Firefox中autocomplete="off" 設(shè)置不起作用Bug的解決方法
在實(shí)現(xiàn)補(bǔ)全提示功能時(shí)(Suggest),都會(huì)給輸入框(Input)元素添加autocomplete屬性,且值設(shè)為off。2011-03-03
javascript截取字符串(通過(guò)substring實(shí)現(xiàn)并支持中英文混合)
用js方法substring()、方法substr()實(shí)現(xiàn)如標(biāo)題所示的截取字符串并支持中英文混合,具體代碼如下,感興趣的各位可以參考下哈2013-06-06
javascript addLoadEvent函數(shù)說(shuō)明
網(wǎng)頁(yè)加載完整后會(huì)觸發(fā)一個(gè)onload事件,默認(rèn)地一個(gè)事件只能和一個(gè)函數(shù)綁定。2010-01-01
js實(shí)現(xiàn)盒子移動(dòng)動(dòng)畫效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)盒子移動(dòng)動(dòng)畫效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08
關(guān)于JavaScript中高階函數(shù)的魅力詳解
高階函數(shù):英文叫Higher-order function。JavaScript的函數(shù)其實(shí)都指向某個(gè)變量。下面這篇文章主要給大家介紹了關(guān)于JavaScript中高階函數(shù)的魅力,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-09-09
ES6知識(shí)點(diǎn)整理之模塊化的應(yīng)用詳解
這篇文章主要介紹了ES6知識(shí)點(diǎn)整理之模塊化的應(yīng)用,結(jié)合實(shí)例形式分析了基于node.js環(huán)境下模擬ES6模塊化配置與使用相關(guān)操作技巧,需要的朋友可以參考下2019-04-04
js 創(chuàng)建對(duì)象的多種方式與優(yōu)缺點(diǎn)小結(jié)
這篇文章主要介紹了js 創(chuàng)建對(duì)象的多種方式與優(yōu)缺點(diǎn),幫助大家更好的理解和學(xué)習(xí)使用JavaScript,感興趣的朋友可以了解下2021-03-03
微信小程序?qū)崿F(xiàn)頁(yè)面跳轉(zhuǎn)傳遞參數(shù)(實(shí)體,對(duì)象)
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)頁(yè)面跳轉(zhuǎn)傳遞參數(shù)(實(shí)體,對(duì)象),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
JavaScript實(shí)現(xiàn)仿新浪微博大廳和騰訊微博首頁(yè)滾動(dòng)特效源碼
最近看到朋友用JavaScript實(shí)現(xiàn)仿新浪微博大廳和未登錄騰訊微博首頁(yè)滾動(dòng)效果,朋友使用jquery實(shí)現(xiàn)的,在網(wǎng)上看到有用js制作的也比較好,于是把我的內(nèi)容整理分享給大家,具體詳解請(qǐng)看本文2015-09-09

