JS判斷是否出現滾動條


http://www.cnblogs.com/yazdao/archive/2010/12/06/1897742.html

該博文是想用JS檢測瀏覽器是否出滾動條。

 

這邊想到一個比較取巧的方法,

假如沒有出滾動條的時候,手工給增加一個滾動值會怎么樣?

程序上就是給body或documentElement的scrollLeft、scrollTop賦值,

馬上動手實現了一下,結果跟我意想的差不多,呵呵

瀏覽器在沒有出滾動條的時候,賦值后該值不會發生變化,始終是0。

 

 

另外擴展了一下,該檢測方法,不僅可以檢測頁面滾動條,

傳入要檢測的節點,一樣可以得到想要的結果。

 

以下是我的實現,沒有做太多異常處理:

(給scrollLeft,scrollTop賦負數值時會報錯,此外scrollLeft,scrollTop的值不能大於實際最大的滾動值)

var isScroll = function (el) {
             // test targets
             var elems = el ? [el] : [document.documentElement, document.body];
             var scrollX = false, scrollY = false;
             for (var i = 0; i < elems.length; i++) {
                 var o = elems[i];
                 // test horizontal
                 var sl = o.scrollLeft;
                 o.scrollLeft += (sl > 0) ? -1 : 1;
                 o.scrollLeft !== sl && (scrollX = scrollX || true);
                 o.scrollLeft = sl;
                 // test vertical
                 var st = o.scrollTop;
                 o.scrollTop += (st > 0) ? -1 : 1;
                 o.scrollTop !== st && (scrollY = scrollY || true);
                 o.scrollTop = st;
             }
             // ret
             return {
                 scrollX: scrollX,
                 scrollY: scrollY
             };
         };
出自於:http://my.oschina.net/oncereply/blog/38511

  


免責聲明!

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



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