1、js判断页面是否出现滚动条
用 document.documentElement,在页面头部加入声明:
复制代码 代码示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
if (document.documentElement.scrollHeight> document.documentElement.clientHeight){
//执行相关
脚本。
}
2、js判断页面是否出现滚动条
,用JS判断页面是否出现滚动条,在网上搜索到的代码:
当可视区域小于页面的实际高度时,判定为出现滚动条,即:
if (document.documentElement.clientHeight < document.documentElement.offsetHeight) scroll = true;
要使用 document.documentElement ,必须在页面头部加入声明:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
其实,这段代码是不起作用的,因为他没考虑到一个问题,就是浏览器的边框,当在获取页面的offsetHeight高度时是包括了浏览器的边框的,浏览器的边框是2个像素,所以这时无论在任何情况下clientHeight 始终是小于offsetHeight的,这就使得即使没有滚动条它也为true,因此我们要修正这个错误,代码应该这样改,在offsetHeight上减去4个像素,即:
if (document.documentElement.clientHeight < document.documentElement.offsetHeight-4){
//执行相关脚本。
}
以上这代码是判断横向滚动条的,一般要判断的是纵向滚动,代码:
if (document.documentElement.clientWidth < document.documentElement.offsetWidth-4){
//执行相关脚本。
}
经测试,
document.documentElement.offsetHeight
在ie8,ff下有差别。
ff识别,ie8下不识别。
例子:
复制代码 代码示例:
<div style="height:850px;">649</div>
<script type="text/
javascript">
if (document.documentElement.clientHeight < document.documentElement.offsetHeight) scrolls = true;
if (document.documentElement.clientHeight < document.documentElement.offsetHeight - 4) {
alert('a');
}
alert( document.documentElement.offsetHeight)
//alert(document.documentElement.clientHeight);
</script>
还是得用:
if (document.documentElement.clientHeight < document.body.offsetHeight ) {
dosomething
}
不同的浏览器差别,会出现不同的情况。javascript禁用浏览器滚动条 js 页面刷新记住滚动条位置 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
};
};