1

我有一个搜索结果列表,其中包含 100 个项目。显示时会出现浏览器滚动条。到目前为止没有问题。

但是,当用户现在再次搜索时,这次只获得了 8 个结果,结果适合页面并且滚动条消失了。再次,没问题。

但是我现在想做的是让这个看起来很花哨。所以我想淡出结果,然后淡入新的。

问题是当你淡出时,整个窗口会按照设计的方式调整大小,滚动条会移动,然后显示新的结果。如果新结果需要滚动条,那么这看起来有点奇怪,因为它首先消失然后重新出现。

是否有一种纯粹的 jQuery 方法来推迟窗口调整大小,从而保持滚动条可见,直到下一次加载的结果完全显示?

我正在寻找的效果是,如果两个结果都需要滚动条,那么您淡出第一个结果,滚动条保持不变,淡入下一个,滚动条保持不变。而不是让它消失然后重新出现。

4

2 回答 2

1

垂直滚动条的显示基于文档中内容的高度与窗口高度的比较。因此,当您将内容添加到高于窗口的文档时,滚动条会出现,或者当内容不再高于窗口时,滚动条就会消失。

如果您想在过渡期间控制滚动条并使其独立于内容高度,那么您必须根据您要执行的操作使用 CSS 手动强制打开或关闭滚动条。这可以通过设置对象的overflow-y样式属性来完成body。例如:

$(document.body).css("overflow-y", "scroll");

将强制滚动条保持打开状态。您可以在overflow-y 此处查看选项。

于 2012-11-12T03:46:08.840 回答
1

演示——如何进行复杂的概念验证?

基本思想是它保持现有的垂直滚动条,直到替换进来。

// Specify the height of the container, for example, height:120px;
$('.container').height($('.container').height());
// Hide currently visible content.
// Load in new content.
// Reset the height of the container i.e. height:auto;
$('.container').height('');
于 2012-11-12T04:49:45.880 回答