1. 程式人生 > >JS封裝自己的scrollTop left

JS封裝自己的scrollTop left

首先,什麼是scroll,scroll就是用來獲得滾動長度的:

scroll也是同理,但是它的寫法有如下規則:

谷歌瀏覽器 和沒有宣告 DTD <DOCTYPE > :
document.body.scrollTop;
火狐 和其他瀏覽器
document.documentElement.scrollTop;
ie9+ 和 最新瀏覽器 都認識
window.pageXOffset; pageYOffset (scrollTop)

我們呼叫一次,只能獲得當前的滾動長度,不能實時監控,所以就要加一個window事件:

window.onscroll = function() { 頁面滾動語句 }

相容寫法:

 var scrollTop = window.pageYOffset || document.documentElement.scrollTop
          || document.body.scrollTop || 0;

封裝寫法:

<script>
    //   var json = {left: 10, right: 10}  變異
    //json.left   json.top
    function scroll() {
        if(window.pageYOffset != null)  //  ie9+ 和其他瀏覽器
        {
            return {
                left: window.pageXOffset,
                top: window.pageYOffset
            }
        }
        else if(document.compatMode == "CSS1Compat")  // 宣告的了 DTD
          // 檢測是不是怪異模式的瀏覽器 -- 就是沒有 宣告<!DOCTYPE html>
        {
            return {
                left: document.documentElement.scrollLeft,
                top: document.documentElement.scrollTop
            }
        }
        return { //  剩下的肯定是怪異模式的
            left: document.body.scrollLeft,
            top: document.body.scrollTop
        }
    }
    window.onscroll = function() {
        console.log(scroll().top);
    }
</script>

這樣,scroll().top,scroll().left就各自是相應的長度。