http://www.cnblogs.com/yazdao/archive/2010/12/06/1897742.htmlhtml
該博文是想用JS檢測瀏覽器是否出滾動條。瀏覽器
這邊想到一個比較取巧的方法,.net
假如沒有出滾動條的時候,手工給增長一個滾動值會怎麼樣?htm
程序上就是給body或documentElement的scrollLeft、scrollTop賦值,blog
立刻動手實現了一下,結果跟我意想的差很少,呵呵get
瀏覽器在沒有出滾動條的時候,賦值後該值不會發生變化,始終是0。io
另外擴展了一下,該檢測方法,不只能夠檢測頁面滾動條,function
傳入要檢測的節點,同樣能夠獲得想要的結果。class
如下是個人實現,沒有作太多異常處理:test
(給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