CSS - jQuery隐藏/显示div更改高度

时间:2011-04-16 21:37:44

标签: jquery css height

这可能是一个菜鸟问题,但我想隐藏P标签内的内容(.feedback-text),而不会改变div(.feedback-box)的高度。

<div class="feedback-box">
    <p class="feedback-text"></p>
</div>

p标签中会有不同长度的文本,但我不希望div使用它向上/向下滑动。除非文本比以前更大或更小,否则div必须保持相同的大小。

文本发生变化的原因是因为ajax从数据库获得了不同的反馈。有关详细信息,请参阅this问题。

我希望我已经说清楚了。感谢。

编辑:

请参阅this website,我正在进行测试。正如您所看到的,反馈框div在隐藏p标签并再次显示时会跳转。

4 个答案:

答案 0 :(得分:4)

只为opacity制作动画。这使元素不可见,但仍然存在:

$('.feedback-text').animate({opacity: 0}, 500);

你的JS代码看起来有点可疑。尝试用它替换它:

function get_feedbackb() {
   $.post({url: 'feedback.php', function(data) {
     $('.feedback-text').stop().animate({opacity: 0}, 1000, function() {
       $(this).html(data);
       $(this).stop().animate({opacity: 1}, 3000);
     });
   });

   setTimeout(get_feedback(), 4000);
 });

$(document).ready(function(){
   get_feedback();
 });

答案 1 :(得分:1)

您可以设置css属性:

visibility:hidden;

这是你想要的吗?

答案 2 :(得分:0)

在我看来(并理解它,我不确定我这样做),你有三个选择:

  • 在父div上设置固定高度,如果css overflow-y:auto太大,请使用css visibility:hidden;滚动。
  • 在孩子身上使用{{1}}
  • 为不透明度设置动画。它还会在那里。

答案 3 :(得分:0)

可能有更好的方法可以做到这一点,但请尝试检查一下

jsfiddle