jQuery在ajax请求加载的内容中滚动到id

时间:2015-08-24 14:47:34

标签: javascript jquery html ajax scroll

我需要滚动到ajax加载的项目,但在加载内容后,没有任何反应,页面始终位于顶部。当我单击刷新按钮(页面通过内容缓存动态重新加载)时,页面将滚动到指定的目标。

var startPageLoader = function( pid, sid, url ) {
        loader( 'show' );

        $.ajax( {
            url         : cCore.Settings[ 'url' ] + '/page/',
            method      : 'POST',
            data        : { _t : 'page', _pid : pid, _sid : sid },
            dataType    : 'json',
            success     : function( ret ) {
                if( !ret[ 'status' ] ) {
                    loader( 'hide' );
                    return;
                }
                loader( 'hide' );

                $( '#mainWrapper > .content article.subpage' ).hide( ).html( ret[ 'data' ] ).fadeIn( );

                if( url != null ) {
                    if( sid.length )
                        url += '#' + sid;

                    history.pushState( {}, '', url );
                }

                aProduct[ 0 ] = pid;

                cCore.Plugins[ "modalTooltip" ].rebuild( );

                prepareGallery( );
                scrollToSection( sid );
            }
        } );    
    };

    var scrollToSection = function( sid ) {
        if( !sid.length )
            return;

        aProduct[ 1 ] = sid; // sid is an name of target

        var offset = $( "#" + sid ).offset( ).top;
        $( 'html, body' ).animate( {
            scrollTop: offset
        }, 1000 );


    };

我认为这可能与文档高度有关,但我不确定。

感谢。

1 个答案:

答案 0 :(得分:0)

您应该能够使用锚点来实现这一点,也可以使用一些javascript。

这是一个描述锚点的链接: http://www.htmlgoodies.com/tutorials/getting_started/article.php/3479511

以及这里介绍如何使用javascript跳转到锚点: anchor jumping by using javascript