2015-02-10 更新
jquery offset()获取隐藏元素坐标值始终为0终极解决方法:
https://www.phpvar.com/bbs/forum.php?mod=viewthread&tid=104
----------------------------------------------------------------------------------------------------
Element.offset().top方法正常情况下是获得元素相对浏览器视窗之间的距离,但如果元素本身是隐藏的即加了display:none,该方法取得值始终都是0;
如代码所示:
<style type="text/css"> *{margin:0;padding:0;} body{height:2000px;} .demo{width:200px;height:200px; border:1px red solid; position:absolute;right:0;top:200px; display:none;} </style> <div class="demo"></div> <script type="text/javascript"> $(function(){ var temp=$(".demo").offset().top; alert(temp); }) </script>
alert出来的是0
解决方法:直接获取元素css中定义的top值,再去掉获取值中的px单位值,修改后的源码如下:
<style type="text/css"> *{margin:0;padding:0;} body{height:2000px;} .demo{width:200px;height:200px; border:1px red solid; position:absolute;right:0;top:200px; display:none;} </style> <script type="text/javascript"> $(function(){ var temp=$(".demo").css("top"); temp=stripPX(temp); //去掉px function stripPX(obj){ if(obj.indexOf("px")!=-1){ return parseInt(obj.slice(0,-2)); }else{ return "参数格式不正确!"; } } alert(temp); }) </script> <div class="demo"></div>
上一篇: 仿百度联盟对联广告
下一篇: 获取地址栏倒数第2个/字符所在位置及其后的所有字符串
2条评论( 网友:2 条,站长:0 条 ) 网友评论{有您的评论更精彩....}