A JavaScript Fancier

伟大的javascript技术研究中...

  IT博客网 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  304 随笔 :: 0 文章 :: 211 评论 :: 0 Trackbacks


在Ext中,几乎所有的组件都有isVisible()方法和hidden属性,都是用来判断是否组件元素是否可见,这在ext内部管理来说没有问题,但有时我们把组件放在了自己的html结构内,如果我们把自己编写的html元素通过css定义为隐藏后,使用ext的isVisible方法和hidden属性就不能正确获取到组件是否可见了,因为ext也仅仅是根据判断元素的visibility和display属性来确定元素是否可见的。因此如果本身没有设定隐藏而外层设定了隐藏,则不能通过这两个css属性来判断元素是否可见了。

在实际的应用中,有时还必须需要知道元素的真实的可见性,但此时通过ext的内部方法就不管用了,思考测试许久突然想起了一个元素,当元素不可见时读取其实际高度或宽度则可能返回0,测试发现果然如此。
通过读取其offsetXXX或clientXXX来判断,或者使用Ext的getSize或getComputedWidth/Height方法获取,如果元素在页面不可见则会返回0,根据这点我们就可以获取到元素的真正可见性了。

如我们需要在元素可见时执行一些操作,则可以如下组织代码:
var timer=setInterval(function(){
    
if(el.getComputedHeight()>0||el.getComputedWidth()>0){
            
//do something
            clearInterval(timer);
    }
},
1)
posted on 2008-06-23 13:37 Yemoo'S JS Blog 阅读(295) 评论(1)  编辑 收藏 引用 所属分类: javascript技巧总结Js框架组件

评论

# re: 判断html元素是否真正可见的巧妙方法 2008-06-28 11:21 长江三峡

不错  回复  更多评论
  



标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)
 
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
 
相关链接: