Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

javascript - How to make page scroll to back top when new content loads in an SPA?

I'm using octoberCMS with Single Page Application Plugin. I've added smooth-scrollbar.js.

Everything works perfectly, except that I can't get smooth-scrollbar to scroll back to the top when a new page is loaded.

Here's the API documentation at Github

<div id="my-scrollbar" data-scrollbar>
 <div id="content">
   <div id="spa-page-content">
    {% page %}
   </div>
 </div>
</div>

Please bear with me, as I'm new to this and learning :)

Thanks a lot, You'll make my day!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can create an observer that reacts to content change. I used this nifty library, scrollTo.js for nice scrolling control. Here is an example on one of my projects. Using Jquery on method with a parent element on my page I then watch for content change.

   $('#{$section}').on('DOMSubtreeModified', function(){
        let postTitle = $('#postTitle');
        if (postTitle.length > 0) {
            $('body').scrollTo('#bms-blog', {offset: -115});
        }
    });

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...