1.div写在页面上,用js给他填充内容之后,然后.height()获取他的高度,不管怎么样取到的高度都是页面上原来没有填充内容之前的div的高度(我没有给div设置高度)
2.如果给div设置一个min-height,这样不管div高度怎么变化,取到的高度都是min-height的值问题:那div高度自适应,有没有办法取得高度增大后的高度,height()方法好像不行,原生的js offsetHeight好像也是取不到值(看了看jquery源码,没咋看懂它的height()怎么取值的,所以来问问大神们)divjquery
2.如果给div设置一个min-height,这样不管div高度怎么变化,取到的高度都是min-height的值问题:那div高度自适应,有没有办法取得高度增大后的高度,height()方法好像不行,原生的js offsetHeight好像也是取不到值(看了看jquery源码,没咋看懂它的height()怎么取值的,所以来问问大神们)divjquery
解决方案 »
- zDialog在iFrame中报错
- 用js如何清空页面所有的文本框?
- ◆◆◆请求大侠帮忙→此段代码那里有错误?
- java新手提问(struts):一个页面三个frame,如何在登录时frame3中显示提交后得到的数据
- 如何使IFRAME 中的超连接无效?
- 高分wanted: 一个作用域的问题
- 急!请问如何在脚本中(on_load)事件中使下拉框失效和不可以显示
- 怎么一创建ActiveXObject就出错阿?
- 请问很多网站的素材库里点击小图看大图,这个功能是怎么实现的啊?
- vue中v-html解析图片路径出错!
- JQ1.8 $(object).attr("scrollHeight") 不起作用了怎么回事?
- javascript函数中利用createElement生成的标签如何赋予css样式?
<div class="pop-info">
<div class="span-hide mess">
<div class="photo">
<a href="#"><img src="../img/test.jpg" /></a>
</div>
<div class="info">
<p>
<label><a href="#"></a></label>
</p>
<p class="add">
<label class="add-sex"><img src="" /></label>
<label class="add-add"></label>
</p>
<div class="blog">
<label class="label-color">关注</label><label class="p1 follow"></label>
|
<label class="label-color">粉丝</label><label class="p1 fans"></label>
|
<label class="label-color">微博</label><label class="p1 status"></label>
</div>
</div>
<div class="intro">
<label class="label-color">简介:</label><label class="p1"></label>
</div>
<div class="option">
<a href="" class="pure">标记</a>
<a href="" class="pure">关注</a>
</div>
</div>
<span class="bot-bot span-hide"></span>
<span class="bot-top span-hide"></span>
<span class="top-bot span-hide"></span>
<span class="top-top span-hide"></span>
<p class="span-hide loading">
<img src="../img/022.gif" />
<label>正在加载,请稍后...</label>
</p>
</div>
这是当鼠标移动到头像上,请求后台返回数据,填充html,这时候高度会撑大$(".covf .fl").hover(function(){
clearTimeout(hoverTimeout);
clearTimeout(hoverTimeout2);
var uid = $(this).attr("uid");
$(".pop-info .mess").hide();
$(".pop-info .loading").show();
$.get("searchUserById.action?uid=" + uid,null,function(data){
if(data != "error"){
$(".pop-info .photo img").attr("src",data.head_photo);
$(".pop-info .info a").html(data.nick);
if(data.sex == 1){
$(".pop-info .add-sex img").attr("src","../img/icon-male.png");
} else if(data.sex == 2){
$(".pop-info .add-sex img").attr("src","../img/icon-female.png");
}
$(".pop-info .add-add").html(data.address);
$(".pop-info .follow").html(data.follow);
$(".pop-info .fans").html(data.fans);
$(".pop-info .status").html(data.status);
$(".pop-info .intro .p1").html(data.intro);
$(".pop-info .loading").hide();
$(".pop-info .mess").show();
}
}); var pos = $(this).offset();
var height = parseInt($(this).height()); //当前div高度
var left = parseInt(pos.left); //当前div左位移
var top = parseInt(pos.top); //当前div顶部位移
var divHeight = parseInt($(".pop-info").height()); //弹出层高度
//------这里我打印看了看这个divHeight,怎么都不会变,都是页面上代码的那点高度
console.log(divHeight + "//" + $(".pop-info").get(0).clientHeight);
var scrollTop = parseInt($(document).scrollTop()); //滚动条到顶部高度
var borderLeftPx = $(".pop-info span").css("left"); //尖角距离左边位移
var borderLeft = parseInt(borderLeftPx.substring(0, borderLeftPx.indexOf("px")));
var borderTopPx;
var borderTop;
//当前位置到窗口高度小于要显示的div高度
if((top - scrollTop) < divHeight){
$(".pop-info .bot-bot").hide();
$(".pop-info .bot-top").hide();
$(".pop-info .top-bot").show();
$(".pop-info .top-top").show();
borderTopPx = $(".pop-info .top-top").css("top"); //尖角距离div高度位移
borderTop = parseInt(borderTopPx.substring(0, borderTopPx.indexOf("px")));
$(".pop-info").fadeIn();
$(".pop-info").css({left:(left - borderLeft) + 'px',top:(top + height - borderTop) + 'px'});
} else {
$(".pop-info .top-bot").hide();
$(".pop-info .top-top").hide();
$(".pop-info .bot-bot").show();
$(".pop-info .bot-top").show();
borderTopPx = $(".pop-info .bot-top").css("bottom"); //尖角距离div高度位移
borderTop = parseInt(borderTopPx.substring(0, borderTopPx.indexOf("px")));
$(".pop-info").fadeIn();
$(".pop-info").css({left:(left - borderLeft) + 'px',top:(top - divHeight + borderTop) + 'px'});
}
},function(){
hoverTimeout = setTimeout(function(){
$(".pop-info").fadeOut(0);
},100);
});
这是css,这里我给了个min-height,所以一直取到的是这个值,但是我去掉也没用,取到的是页面上div的原来的高度.pop-info{display:none;min-height:140px;background-color:#fff; border-radius: 8px; width:300px;box-shadow:0 0 15px #9B9391;-moz-box-shadow:0 0 15px #9B9391;-webkit-box-shadow:0 0 15px #9B9391;border:1px solid #beceeb;position: absolute;z-index: 99999;line-height: 20px;}
var _this = $(this);
$.get("searchUserById.action?uid=" + uid,null,function(data){
if(data != "error"){
$(".pop-info .photo img").attr("src",data.head_photo);
$(".pop-info .info a").html(data.nick);
if(data.sex == 1){
$(".pop-info .add-sex img").attr("src","../img/icon-male.png");
} else if(data.sex == 2){
$(".pop-info .add-sex img").attr("src","../img/icon-female.png");
}
$(".pop-info .add-add").html(data.address);
$(".pop-info .follow").html(data.follow);
$(".pop-info .fans").html(data.fans);
$(".pop-info .status").html(data.status);
$(".pop-info .intro .p1").html(data.intro);
$(".pop-info .loading").hide();
$(".pop-info .mess").show();
alert(_this.height());
}
});
所以得到的还是原来的高度。
我日,又犯了这种NC的错误,方法改成同步或者用你说的放在方法里面都可以
多谢提醒了 哈哈