JS如何获取一个未知DIV高度的方法

这种做法的局限:

1. 如果元素的display属性设置为none, 那么得到的结果为0

2. 在safari浏览器中,需要使用:element.offsetHeight得到实际高度,这是safari浏览器的bug

下面是Prototype提供的方法,能够兼容各种浏览器,同时在元素隐藏的情况下也能正确得到元素尺寸,供参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
getDimensions:  function (element) {
   element = $(element);
   var  display = $(element).getStyle( 'display' );
   if  (display !=  'none'  && display !=  null // Safari bug
    return  {width: element.offsetWidth, height: element.offsetHeight};
   // All *Width and *Height properties give 0 on elements with display none,
   // so enable the element temporarily
   var  els = element.style;
   var  originalVisibility = els.visibility;
   var  originalPosition = els.position;
   var  originalDisplay = els.display;
   els.visibility =  'hidden' ;
   els.position =  'absolute' ;
   els.display =  'block' ;
   var  originalWidth = element.clientWidth;
   var  originalHeight = element.clientHeight;
   els.display = originalDisplay;
   els.position = originalPosition;
   els.visibility = originalVisibility;
   return  {width: originalWidth, height: originalHeight};
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值