【问题标题】:JS/Knockout Endless Scrolling - Scroll Bar Jumps To Top of PageJS/Knockout 无限滚动 - 滚动条跳转到页面顶部
【发布时间】:2012-06-19 14:49:40
【问题描述】:

所以我有一段用 js 编写的代码,或多或少地检查滚动条相对于文档/窗口大小的位置。如果它在底部附近,它将触发函数调用。

一切都很好,直到我开始编写将在当前显示的数据下实际加载额外页面/数据的函数。

这是目前在加载额外数据的函数中编写的内容:

var appendData = function () {
    _loading(true);
    spinner.spin(spinnerTarget);
    FC.WebAPI.RouteTemplates.GetTemplates({ "criteria": _searchTerm(), "pageNumber": dataGridViewModel.currentPage(), "pageSize": dataGridViewModel.pageSize(), "filter": Filter.toODataString(filterViewModel.selectedFilters()), "orderBy": _getSortODataString() }).execute(function (response) {
        _data.concat(response.Results);
        spinner.stop();
        _loading(false);
        if (_searchTerm().trim() != "") {
            setTimeout(function () {
                var terms = _searchTerm().split();
                for (var i = 0; i < terms.length; i++) {
                    $('.routedetails span').highlight(terms[i]);
                }
            }, 200);
        }

    }, function (fail) {
        spinner.stop();
        _loading(false);
    });
}

在实现无限滚动功能之前,它被用作一个简单的“下一步”按钮,为了将所有内容保持在同一页面上而不是加载新页面,我们添加了

_data.concat(response.Results);

每当函数被调用时,它似乎将滚动条跳到屏幕顶部,而不是或多或少地保持相同的位置。不知道为什么它有什么想法?

【问题讨论】:

    标签: javascript knockout.js scroll infinite-scroll


    【解决方案1】:

    我曾经遇到过这个问题,这是因为屏幕顶部有一个控件具有焦点。在加载页面过程中,我在该控件上调用了 $(element).blur(),问题就消失了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-09
      • 1970-01-01
      • 2015-04-04
      • 1970-01-01
      • 1970-01-01
      • 2013-01-30
      • 2021-11-10
      • 2021-05-13
      相关资源
      最近更新 更多