$conf, $runtime; function_exists('chdir') AND chdir(APP_PATH); $r = 'mysql' == $conf['cache']['type'] ? website_set('runtime', $runtime) : cache_set('runtime', $runtime); } function runtime_truncate() { global $conf; 'mysql' == $conf['cache']['type'] ? website_set('runtime', '') : cache_delete('runtime'); } register_shutdown_function('runtime_save'); ?>Go top smooth function|Programmer puzzle solving
最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

Go top smooth function

matteradmin10PV0评论
Closed. This question is off-topic. It is not currently accepting answers.

Your question should be specific to WordPress. Generic PHP/JS/SQL/HTML/CSS questions might be better asked at Stack Overflow or another appropriate Stack Exchange network site. Third-party plugins and themes are off-topic for this site; they are better asked about at their developers' support routes.

Closed 6 years ago.

Improve this question

I have a problem that I write the following code in the functions.php to realize the page go top.

It works.but just work for the user fist visit the page and click the button for first time.

I must refresh the page let the function work.

Did I miss something?

function back_and_top( $content ) {

    if( is_front_page() || is_home() ) {
    return $content;
}


    $custom_content .= '<div class="back_and_top">
<a class="top_btn" href="javascript:const scrollToTop = () => {
  const c = document.documentElement.scrollTop || document.body.scrollTop;
  if (c > 0) {
    window.requestAnimationFrame(scrollToTop);
    window.scrollTo(0, c - c / 8);
  }
};
scrollToTop();" title="go top"><i class="fa fa-sort" aria-hidden="true"></i>Go Top</a>

</div>';

    $content .= $custom_content;
    return $content;
}
add_filter( 'the_content', 'back_and_top' );
Closed. This question is off-topic. It is not currently accepting answers.

Your question should be specific to WordPress. Generic PHP/JS/SQL/HTML/CSS questions might be better asked at Stack Overflow or another appropriate Stack Exchange network site. Third-party plugins and themes are off-topic for this site; they are better asked about at their developers' support routes.

Closed 6 years ago.

Improve this question

I have a problem that I write the following code in the functions.php to realize the page go top.

It works.but just work for the user fist visit the page and click the button for first time.

I must refresh the page let the function work.

Did I miss something?

function back_and_top( $content ) {

    if( is_front_page() || is_home() ) {
    return $content;
}


    $custom_content .= '<div class="back_and_top">
<a class="top_btn" href="javascript:const scrollToTop = () => {
  const c = document.documentElement.scrollTop || document.body.scrollTop;
  if (c > 0) {
    window.requestAnimationFrame(scrollToTop);
    window.scrollTo(0, c - c / 8);
  }
};
scrollToTop();" title="go top"><i class="fa fa-sort" aria-hidden="true"></i>Go Top</a>

</div>';

    $content .= $custom_content;
    return $content;
}
add_filter( 'the_content', 'back_and_top' );
Share Improve this question asked Jan 3, 2019 at 12:20 cindycindy 1059 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 1

If you had checked the JS console, then you would see this error:

Uncaught SyntaxError: Identifier 'scrollToTop' has already been declared at :1:1

And that's the reason, why your code works only once.

Don't put this as inline JS. Write it correctly.

In go-to-top.js file:

jQuery(function ($) {

    $('.go-to-top').click(function (e) {
        e.preventDefault();
        c = document.documentElement.scrollTop || document.body.scrollTop;
        if (c > 0) {
            window.requestAnimationFrame(scrollToTop);
            window.scrollTo(0, c - c / 8);
        }
    });

});

And in your PHP file:

function back_and_top( $content ) {

    if ( is_front_page() || is_home() ) {  // I'm pretty sure that's not enough (there are archives and so on)
        return $content;
    }

    $custom_content = '<div class="back_and_top">
<a class="go-to-top" href="#" title="go top"><i class="fa fa-sort" aria-hidden="true"></i>Go Top</a></div>';

    $content .= $custom_content;
    return $content;
}
add_filter( 'the_content', 'back_and_top' );

Articles related to this article

Post a comment

comment list (0)

  1. No comments so far