javascript - 使用滚动事件显示基于窗口高度的元素

标签 javascript jquery html css scroll

我想根据滚动条和窗口的位置显示元素。

我想要实现的技术类似于 infinite loading

当前 fiddle :http://jsfiddle.net/fxJ7s/14/

$('.item:gt(5)').hide();

function loadMore() {

    var items = $(".item").length;
    var shown = 6;

    shown = $('.item:visible').length + 3;
    console.log(shown);

    if (shown < items) {
        $('.item:lt(' + shown + ')').show();
    }

    $(window).bind('scroll', bindScroll);
}

function bindScroll() {
    if ($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
        $(window).unbind('scroll');
        loadMore();
    }
}

$(window).scroll(bindScroll);

现在,我隐藏了除前 6 个元素之外的所有元素。然后当用户向下滚动时,将显示下一个 3 个元素。我可以在控制台中看到它们变得可见,但我不希望它们同时全部出现。理想情况下会出现 3 个,然后随着窗口高度的滚动再出现 3 个。

似乎在前 3 个可见后窗口的高度没有更新?

这是一个可以工作的东西,但是有一个点击功能。 http://jsfiddle.net/nFd7C/327/

感谢任何指点或帮助。 :)

最佳答案

我之前回答过类似的问题。根据我的经验,在这种情况下,最好的方法是在用户滚动到页面末尾时运行一个函数,该函数循环显示可见的元素,然后取消隐藏另外 9 个元素。当用户每次滚动到页面末尾时,都会重复此函数。

我整理了一个简单的例子来说明我的回答背后的逻辑。我看到您正在使用 CSS 框架。为了这个示例,我使用了带有 !important 声明的 CSS 规则来覆盖您的框架。我不建议使用 !important,而是使用一个单独的自定义样式表,在需要时覆盖框架规则。

演示 http://jsfiddle.net/fxJ7s/15/

$(".item").addClass("noshow");
var contentNumber = 0;

function reveal() {
    var constraintNumber = contentNumber + 9;
    for (i = contentNumber; i < constraintNumber; i++) {
        $('.item').eq(contentNumber).removeClass("noshow");
        contentNumber++;
    }
}

//Window scroll function
$(window).scroll(function () {
    if ($(window).scrollTop() == $(document).height() - $(window).height()) {
        reveal();
    }
});
reveal();

关于javascript - 使用滚动事件显示基于窗口高度的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25005752/

相关文章:

javascript - 对网站背景的 SVG 的合理限制,或者关于为什么不加载的想法?

javascript - jquery中如何获取某个元素的所有类名?

html - CSS : border-radius and color not respected within table

javascript - 带有上一个、暂停和下一个按钮的 JS 文本循环

javascript - 元素 id 获取数据属性的值

javascript - Blueimp jQuery 文件上传 - 上传完成响应后隐藏队列中的文件

javascript - 一排积木——点击一个,其余的滑出屏幕

javascript - 从外部 js 加载的固定页脚确实 "overlap"站点内容

javascript - jQuery 文件上传预览/删除图像不适用于新输入

html - 某些浏览器中的奇怪定位