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