Closed. This question is off-topic. It is not currently accepting answers.admin管理员组文章数量:1130349
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 questionI 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 questionI 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
1 Answer
Reset to default 1If 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' );
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 questionI 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 questionI 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
1 Answer
Reset to default 1If 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' );
本文标签: Go top smooth function
版权声明:本文标题:Go top smooth function 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/questions/1749048769a2308281.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论