【问题标题】:Prevent div from collapsing while using jQuery.load使用 jQuery.load 时防止 div 折叠
【发布时间】:2010-07-13 14:11:58
【问题描述】:

我加载外部内容来替换 DIV。

问题是,当 ajax-loader.gif 替换初始内容时,页面高度缩小并且滚动条可能会消失。一旦加载了外部内容,滚动条就会重新出现。抽搐会带走平滑度。

有没有更流畅的方法?也许在加载外部内容之前保留 div 的高度?我不能使用固定高度。这是我的功能:

function(){
    $('.filter a').click(function(){
    $('#mydiv').html('<p><img src="ajax-loader.gif" /></p>');
    $('#mydiv').load('/site/?key=Value');
  return false;
});

(Project 是 Wordpress 中的分面搜索)。

谢谢!

【问题讨论】:

  • 这里的问题是加载数据到页面需要等待时间吗?如果是这样,请使用像 Andir 建议的回调。
  • 不,等待时间还可以。问题是 div 先收缩然后再展开。

标签: jquery ajax wordpress load


【解决方案1】:

您可以使用 $.ajax() 加载内容并将 div 的 html 设置为它返回的内容...

$.ajax({
  url: '/site/?key=Value',
  success: function(data) {
    $('#mydiv').html(data);
  }
});

编辑:我认为你的转变是由于加载图像比你的其他评论更小......这应该可以解决这个问题:

var storedHeight = $('#mydiv').height();
$('#mydiv').html('<p><img src="ajax-loader.gif" /></p>').find('p').height(storedHeight);

【讨论】:

  • 当他放入加载图标时,他的 div 仍然会缩小。使用 $.ajax 加载新内容不会有帮助。
  • 我将

    的高度设置为元素的高度。当它添加该内容时,高度应该相同。加载内容时,它将自动删除

    及其各自的高度。无需处理#myDiv 高度。

  • 啊,是的,我看到你添加了那个编辑。当我发表评论时,它还没有被刷新。这在理论上是可行的。
  • 这对我来说看起来不错。我现在必须停止工作,但明天会尝试!
  • 完美运行!非常感谢!
【解决方案2】:

您是否尝试过设置最小高度?

这样的事情可能会奏效:

$(function(){
    $('.filter a').click(function(){
       var height = $('#mydiv').height();
        $('#mydiv').attr('style', 'min-height:' + height);
        $('#mydiv').html('<p><img src="ajax-loader.gif" /></p>');
        //changed            
        $('#mydiv').load('/site/?key=Value', function(){
            $('#mydiv').removeAttr('style');
            $('#mydiv').attr('style', 'height:auto;');            
        });
        //end of changed
        return false;
    });
});

【讨论】:

  • 嗯,就是这样……差不多。如果新内容比旧内容短,则页面太长。我必须以某种方式清除最小高度。 (并且高度必须以像素为单位: .attr('style', 'min-height:' + height + 'px'); )
  • @Christoph:您是否尝试过使用我建议的 ajax 方法?它会将内容要进入的元素的大小调整为所需的大小,并且不会进行任何时髦的转换。
  • 在加载后尝试将高度设置为自动。我已经更新了答案。
  • 嘿,谢谢,效果很好!不过我会尝试 Andirs ajax 方法,因为它对我来说似乎很漂亮。
猜你喜欢
  • 1970-01-01
  • 2019-09-02
  • 2023-03-09
  • 1970-01-01
  • 2020-09-05
  • 2014-05-05
  • 1970-01-01
  • 2019-12-31
  • 2018-09-07
相关资源
最近更新 更多