首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS无限滚动

JS无限滚动
EN

Stack Overflow用户
提问于 2018-01-24 23:47:46
回答 1查看 688关注 0票数 0

我使用这个https://infinite-scroll.com

对于正常的页面滚动,它开箱即用。

我有一个问题,我在我的页面顶部有一个常规的导航。我想要完成的是:

访问者进入网站。page-1已加载访问者在我的导航中单击Page-3,我希望page-2加载,然后page-3自动向下滚动到page-3

每一页都以div和ID开头,例如

代码语言:javascript
复制
function checkAnchor( anchor ) {

        if ( $( anchor ).length ) {
            return true;
        } else {

            $( '.article-feed' ).infiniteScroll( 'loadNextPage' );
            checkAnchor( anchor );
        }       

    }

$( document ).on( 'click', 'a[href^="#"]', function ( event ) {

        event.preventDefault();

        anchor = $.attr( this, 'href' );

        while ( checkAnchor( anchor ) == false ) {              

            $( '.article-feed' ).infiniteScroll( 'loadNextPage' );

        }

        $( 'html, body' ).animate( {
            scrollTop: $( $.attr( this, 'href' ) ).offset().top
        }, 700 );

    } );

我尝试了很多不同的方法来实现这一点,但我似乎不能让它工作。下一个页面加载,但我必须单击链接,直到页面3最终加载。欢迎任何帮助

EN

回答 1

Stack Overflow用户

发布于 2018-01-25 01:29:27

代码语言:javascript
复制
function checkAnchor( anchor ) {

        if ( $( anchor ).length ) {
            return true;
        } else {
            setInterval( function () {

                $( '.article-feed' ).infiniteScroll( 'loadNextPage' );

                var lastAnchor = "#" + $( ".anchor" ).last().attr( 'id' );

                if ( anchor == lastAnchor ) {
                    $( 'html, body' ).animate( {
                        scrollTop: $( anchor ).offset().top
                    }, 500 );
                    return true;
                } 

            }, 100 );
        }
    }

这确实起到了作用,但我觉得我是在用自己的方式解决这个问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48426426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档