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)一樣。