js的onscroll、scrollTop、scrollHeight及window.scroll等方法


onscroll

解釋:當元素的滾動條滾動時觸發的事件。

onscroll事件貌似任何實體元素都可以綁定,這里的實體元素包括DOM元素、window元素、document元素。

用法即:element.onscroll=function(){};

需要注意的是,滾動條一定要出現,而且滾動條是屬於這元素的,例如:

<div id="wrap" style="height:100px;overflow:auto;">
    <div id="inner" style="height:200px;">content</div>
</div>

因為外層wrap的高度小於內層inner的高度,所以當設置overflow:auto時會出現滾動條,當拖動滾動條時就會觸發wrap的onscroll事件,而不是inner的onscroll事件,即這滾動條屬於wrap而不是屬於inner,明白這點十分重要,對下面理解的scrollTop、scrollHeight一樣道理。


scrollTop 

解釋:元素滾動條內的頂部隱藏部分的高度。

scrollTop屬性只有DOM元素才有,window/document沒有。

用法1:獲取值 var top = element.scrollTop;//返回數字,單位像素

用法2:設置值 element.scrollTop = 200;

對上面的例子來說,控制滾動條的位置是wrap.scrollTop=xx;而不是inner.scrollTop,道理同上。

兼容性問題:獲得整個文檔scrollTop,IE是document.documentElement.scrollTop,FF/CH則是document.body.scrollTop.

 

scrollHeight

解釋:元素滾動條內的內容高度。

scrollHeight同scrollTop屬性一樣,只有DOM元素才有,window/document沒有。

不同的是scrollHeight是只讀,不可設置。

兼容性問題:獲取整個文檔scrollHeight,IE/FF/CH都可以通過document.documentElement.scrollHeight或document.body.scrollHeight獲得。

此外還有scrollLeft,scrollWidth,道理是一樣的。

 

關於window.scroll(),window.scrollBy(),window.scrollTo()

這3個是全局函數,最新的IE/FF/CH都支持。

window.scroll(x,y)是讓window滾動條滾動到那個x,y坐標。//x是水平坐標,y是垂直坐標。

window.scrollBy(-x,-y)是讓window滾動條相對滾動到某個坐標,- 10即相對向左/向上滾動10像素。

window.scrollTo(x,y)和window.scroll(x,y)一樣。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM