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

CSS-jQuery隐藏/显示div更改高度,jquery,css,height,Jquery,Css,Height,这可能是一个noob问题,但我想隐藏p标记(.feedback text)中的内容,而不改变div(.feedback box)的高度 <div class="feedback-box"> <p class="feedback-text"></p> </div> p标记将有不同长度的文本,但我不希望div-it与它一起上下滑动。div必须保持相同的大小,除非文本比以前大或小 文本发生变化的原因是ajax从数据库中获取不同的反馈条目。

这可能是一个noob问题,但我想隐藏p标记(.feedback text)中的内容,而不改变div(.feedback box)的高度

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

p标记将有不同长度的文本,但我不希望div-it与它一起上下滑动。div必须保持相同的大小,除非文本比以前大或小

文本发生变化的原因是ajax从数据库中获取不同的反馈条目。有关更多信息,请参见问题

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

编辑:


请看,我在哪里做测试。正如您所看到的,当p标记被隐藏并再次显示时,反馈框div正在跳转。

您可以设置css属性:

visibility:hidden;

这就是您想要的吗?

您可以设置css属性:

visibility:hidden;

这就是你想要的吗?

只需设置
不透明度的动画即可。这会使元素不可见,但仍然存在:

$('.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();
 });

只需设置
不透明度的动画即可。这会使元素不可见,但仍然存在:

$('.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();
 });
在我看来(我不确定我是否理解),你有三个选择:

  • 在父div上设置一个固定的高度,如果它太大,则使用css
    overflow-y:auto
    滚动
  • 使用
    可见性:隐藏在孩子身上
  • 设置不透明度的动画。它仍然会在那里
    • 在我看来(我不确定我是否理解),您有三个选择:

      • 在父div上设置一个固定的高度,如果它太大,则使用css
        overflow-y:auto
        滚动
      • 使用
        可见性:隐藏在孩子身上
      • 设置不透明度的动画。它仍然会在那里

        • 可能有更好的方法,但请尝试查看此方法


          可能有更好的方法,但请尝试查看此方法



          不,这只是完全隐藏它和里面的内容:/or设置“不透明度:0”;不,这只是完全隐藏它和里面的内容:/or设置“不透明度:0”;Think Blender找到了我的解决方案,jQuery animate:)谢谢anywayThink Blender找到了我的解决方案,jQuery animate:)谢谢。在您摆弄jQuery一段时间后,您会记住以下这些小事情;)它现在正在播放,它弄乱了不透明度并显示下一个早期反馈:/lollhmm,你如何显示反馈?另外,我会使用
          $('.feedback text').stop().animate({opacity:0},500),因为它在调用时停止上一个动画。也许这至少能解决一些问题,没问题。在您摆弄jQuery一段时间后,您会记住以下这些小事情;)它现在正在播放,它弄乱了不透明度并显示下一个早期反馈:/lollhmm,你如何显示反馈?另外,我会使用
          $('.feedback text').stop().animate({opacity:0},500),因为它在调用时停止上一个动画。也许这至少可以解决一些问题。查看后,您会发现一些错误。在动画完成之前不要更改文本。更新文本并重新激活。谢谢,它们是什么bug?它们造成了什么?我看不出它有什么问题。李维,你现在能看一下吗,在我试着按你说的做之后,它似乎在升级:/Hmm。。。它对我有用。。。你看到了什么问题?另外,您使用的浏览器是什么?实际上,请将代码移动到成功位置。除非您得到成功的响应,否则您不会想要设置动画,对吗?查看后,您会遇到一些错误。在动画完成之前不要更改文本。更新文本并重新激活。谢谢,它们是什么bug?它们造成了什么?我看不出它有什么问题。李维,你现在能看一下吗,在我试着按你说的做之后,它似乎在升级:/Hmm。。。它对我有用。。。你看到了什么问题?另外,您使用的浏览器是什么?实际上,请将代码移动到成功位置。除非得到成功的响应,否则你不想制作动画,对吗?