小編給大家分享一下js原生判斷內(nèi)容區(qū)域是否滾動到底部的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
邏輯
判斷內(nèi)容滾動到底需要知道的信息
內(nèi)容區(qū)域的真實高度(也就是滾動區(qū)域)
滾動條距離頂部的位置
內(nèi)容區(qū)域的可見高度
分別對應(yīng)下面的三個API。
element.scrollHeight 獲取元素內(nèi)容高度,,,【只讀屬性】
element.scrollTop 可以獲取或者設(shè)置元素的偏移值,常用于,計算滾動條的位置,當(dāng)一個元素的容器沒有產(chǎn)生垂直方向的滾動條,那它的 scrollTop 的值默認為0.
element.clientHeight 讀取元素的可見高度【只讀屬性】
下面直接引用MDN上面的一個經(jīng)典的公式
判定元素是否滾動到底
如果元素滾動到底,下面等式返回true,沒有則返回false.
element.scrollHeight - element.scrollTop === element.clientHeight
案例-用戶使用協(xié)議
只有等用戶閱讀完協(xié)議才可以點擊同意,也就是說滾動條到底部之后代表完成閱讀
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>tab</title> <style> textarea{height: 200px;width: 300px} </style> </head> <body> <p> <textarea> 用戶咨詢條款 一、咨詢系統(tǒng)提供的服務(wù) 1、本網(wǎng)站咨詢系統(tǒng)(以下簡稱“本系統(tǒng)”)為用戶提供參與各種咨詢項目(以下簡稱“項目”)的機會。用戶在包之網(wǎng)上注冊成為會員,并可申請某一專家會員通過包之網(wǎng)平臺及電話等方式為其提供咨詢服務(wù)。 2、您應(yīng)按照您想要咨詢的專家其所對應(yīng)的專家收費金額,根據(jù)您希望互動/通話時間的長短,預(yù)先存入咨詢費用,方可進行預(yù)約、咨詢。咨詢完成后,剩余的款項將在15個工作日內(nèi)直接退還給您。您應(yīng)提供詳細的收款信息,否則本網(wǎng)站不承擔(dān)任何責(zé)任。提請您注意,若預(yù)存金額過低,可能導(dǎo)致咨詢中斷。咨詢費用根據(jù)本網(wǎng)站標準的專家收費金額及實際通話時間進行計算。您同意因銀行處理本網(wǎng)站對您的每一筆付款所產(chǎn)生的全部費用將由您自行承擔(dān)。 3、如果您對專家的工作內(nèi)容或提供咨詢服務(wù)質(zhì)量等有異議,則在此等爭議完全解決之前,本網(wǎng)站將扣留應(yīng)付給您的款項。 4、如果您需要發(fā)票,應(yīng)直接向提供咨詢的專家要求,本網(wǎng)站不提供任何發(fā)票。 5、專家收費詳見本網(wǎng)站不時發(fā)布的專家收費金額。專家收費金額及其修改均為本條款不可分割的組成部分,請您申請前仔細查看。 6、本網(wǎng)站根據(jù)實際情況盡可能根據(jù)您的要求、申請與專家進行匹配, 但專家有權(quán)不予提供服務(wù)。 </textarea> </p> <p> <input type="checkbox" value="1" disabled="disabled"> 同意 </p> <script> //獲取checkbox元素 var checkbox=document.querySelector('input[type=checkbox]'); document.querySelector('textarea').addEventListener('scroll',function () { //讀取內(nèi)容區(qū)域的真實高度(滾動條高) // console.log(this.scrollHeight); //讀取滾動條的位置 // console.log(this.scrollTop); //設(shè)置滾動到的位置 // this.scrollTop=800; //讀取元素的高度 // console.log(this.clientHeight) //意思就是內(nèi)容總體的高度 - 滾動條的偏移值 === 元素的高度(包含內(nèi)邊)但不包含外邊距,邊框,以及滾動條 if(this.scrollHeight-this.scrollTop===this.clientHeight){ console.log("到達底部"); //移除disabled屬性 checkbox.removeAttribute('disabled') } }) </script> </body> </html>
看完了這篇文章,相信你對“js原生判斷內(nèi)容區(qū)域是否滾動到底部的示例分析”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
名稱欄目:js原生判斷內(nèi)容區(qū)域是否滾動到底部的示例分析-創(chuàng)新互聯(lián)
分享鏈接:http://www.chinadenli.net/article46/gsceg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、App開發(fā)、企業(yè)建站、網(wǎng)站內(nèi)鏈、全網(wǎng)營銷推廣、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容