下面的ajax加载div是“display:none”,当显示样式不是没有时,它的位置将被正确设置!为什么?有解决方法吗? 我很感谢任何建议......
function setTwPopup(x,y){
$.ajax({
url: "twPopup.html",
async : false,
success: function(result){
$('body').append(result);
}
});
var popUp = $('.twPopup');
var x = x-71;
var y = y-342;
popUp.offset({'top': y, 'left': x});
//popUp.draggable({ handle: popUp });
//popUp.fadeIn(400);
}
编辑:将不透明度设置为0而不是显示的解决方法:none不好,因为我之后需要.fadeIn()...而fadeIn会将其淡化为bevore setet
答案 0 :(得分:6)
如果元素设置为“display:none”,则无法设置位置,宽度或高度,元素必须可见才能进行计算。虽然,你可以设置:
visibility: hidden;
OR
position: absolute;
left: -99999px;
希望有所帮助!
答案 1 :(得分:4)
这个怎么样:
function showThatDiv() {
thatDiv.css({
display: 'block',
opacity: 0
});
// calculate x and y HERE
thatDiv.css({
left: x,
top: y
}).fadeIn("slow");
}