各种滚动条的获取

本文介绍了如何使用JavaScript来获取不同元素的滚动条位置,包括页面、iframe及div等,并提供了跨浏览器兼容性的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用javascript如何获取页面滚动条呢?

(1)获取页面滚动条

// Cross browser gets the position of scroll
com.whuang.hsj.getScroll=function(){
    return {
        top:document.documentElement.scrollTop || document.body.scrollTop,
        left:document.documentElement.scrollLeft || document.body.scrollLeft,
        height:document.documentElement.scrollHeight ||document.body.scrollHeight
    }
}

 

(2)获取iframe滚动条

/***
* get iframe window'scroll
*/
com.whuang.hsj.getIframeScroll=function(iframeObj){
	var document22=iframeObj.contentWindow.document;
    return {
        top:document22.documentElement.scrollTop || document22.body.scrollTop,
        left:document22.documentElement.scrollLeft || document22.body.scrollLeft,
        height:document22.documentElement.scrollHeight || document22.body.scrollHeight,
        width:document22.documentElement.scrollWidth || document22.body.scrollWidth
    }
}

 

(3)获取div滚动条

/***
 * Get scroll of div
 * @param divObj
 * @returns {{scrollHeight: (*|number), scrollWidth: (*|number)}}
 */
com.whuang.hsj.getDivScroll=function(divObj){
    if(typeof divObj == 'string'){
        divObj=com.whuang.hsj.$$id(divObj);
    }
    return {
        scrollHeight:divObj.scrollHeight,
        scrollWidth:divObj.scrollWidth
    }
}

 

(4)获取div的位置

/***
 * Get the Coordinate/Location of div
 * @param divObj
 * @returns {{width: number, height: number, left: *, top: Window}}
 */
com.whuang.hsj.divCoordinate=function(divObj){
    if(typeof divObj == 'string'){
        divObj=com.whuang.hsj.$$id('divObj');
    }
    return {'width':divObj.offsetWidth,'height':divObj.offsetHeight,
        'x':divObj.offsetLeft,'y':divObj.offsetTop,
        'scrollLeft':com.whuang.hsj.getScroll().left,'scrollTop':com.whuang.hsj.getScroll().top};
}

 

参考:利用函数的惰性载入提高javascript代码性能

http://blogread.cn/it/article/7304?f=hot1

 -------------- 2016年3月7日更新 --------------

跨浏览器设置滚动条的竖直位置

com.whuang.hsj.setTopScroll=function(top){
	if(document.documentElement.scrollTop){
		document.documentElement.scrollTop=top;
	}else if(document.body.scrollTop){
		document.body.scrollTop=top;
	}
};

 

跨浏览器设置滚动条的水平位置

com.whuang.hsj.setLeftScroll=function(left){
	if(document.documentElement.scrollLeft){
		document.documentElement.scrollLeft=left;
	}else if(document.body.scrollLeft){
		document.body.scrollLeft=left;
	}
};

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值