Go top smooth function

时间:2019-01-03 作者:cindy

我有一个问题,我在函数中编写了以下代码。php来实现页面的转到顶部

它起作用了。但只需为用户工作,第一次访问页面并单击按钮即可

我必须刷新页面,让功能正常工作

我错过什么了吗?

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\' );

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

如果您检查了JS控制台,则会看到以下错误:

未捕获的语法错误:标识符“scrollToTop”已在:1:1声明

这就是为什么你的代码只能工作一次的原因。

不要将其作为内联JS。正确书写。

在里面go-to-top.js 文件:

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);
        }
    });

});
在PHP文件中:

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\' );

相关推荐

如何在Functions.php中链接style.css

我是WordPress的新手;我刚开始学习WordPress。我想把风格联系起来。函数中的css。php,但我无法解决这里可能存在的问题。谁能给我指出正确的方向吗?指数php<?php get_header(); ?> <?php if ( have_posts() ) { while ( have_posts() ) { the_post();