Nếu bạn thấy nút back to top (lên đầu trang) mặc định trong theme Flatsome quá nhàm chán thì có thể tạo riêng 1 nút khác đẹp hơn với hiệu ứng scroll tới đâu thì viền màu tới đó như web demo mình đã tích hợp tại đây: https://dienmay9.flatsome.vn/
Bước 1: Truy cập tới file functions.php của Child theme
Truy cập menu Giao diện -> Theme File Editor (Chỉnh sửa Giao diện) -> chọn file functions.php để sửa
Bước 2: Thêm đoạn code này vào cuối file functions.php
add_action( 'init', 'fn_remove_backtotop');
function fn_remove_backtotop() {
remove_action( 'flatsome_footer', 'flatsome_go_to_top' );
}
add_action('wp_footer','fn_backtotop');
function fn_backtotop(){
?>
<div class="progress-wrap">
<svg class="progress-circle svg-content" width="100%" height="100%" viewBox="-1 -1 102 102">
<path d="M50,1 a49,49 0 0,1 0,98 a49,49 0 0,1 0,-98"/>
</svg>
</div>
<style>
.progress-wrap {
position: fixed;
right: 30px;
bottom: 30px;
height: 46px;
width: 46px;
cursor: pointer;
display: block;
border-radius: 50px;
z-index: 10000;
opacity: 0;
visibility: hidden;
transform: translateY(15px);
-webkit-transition: all 200ms linear;
transition: all 200ms linear;
}
.progress-wrap.active-progress {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
.progress-wrap::after {
position: absolute;
font-family: "fl-icons" !important;
content: "";
text-align: center;
font-size: 24px;
color: #fff;
left: 0;
right: 0;
margin: auto;
background-color: var(--primary-color);
border-radius: 99px;
top: 50%;
transform: translateY(-50%);
height: 38px;
width: 38px;
line-height: 35px;
cursor: pointer;
display: block;
z-index: 1;
-webkit-transition: all 200ms linear;
transition: all 200ms linear;
}
.progress-wrap:hover::after {
background-color: #333;
}
.progress-wrap::before {
position: absolute;
font-family: "fl-icons" !important;
content: "";
text-align: center;
line-height: 46px;
font-size: 24px;
opacity: 0;
background: var(--primary-color); /* --- Pijl hover kleur --- */
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
left: 0;
top: 0;
height: 46px;
width: 46px;
cursor: pointer;
display: block;
z-index: 2;
-webkit-transition: all 200ms linear;
transition: all 200ms linear;
}
.progress-wrap:hover::before {
opacity: 1;
}
.progress-wrap svg path {
fill: none;
}
.progress-wrap svg.progress-circle path {
stroke: var(--primary-color); /* --- Lijn progres kleur --- */
stroke-width: 4;
box-sizing:border-box;
-webkit-transition: all 200ms linear;
transition: all 200ms linear;
}
</style>
<script>
jQuery(document).ready(function(){"use strict";
var progressPath = document.querySelector('.progress-wrap path');
var pathLength = progressPath.getTotalLength();
progressPath.style.transition = progressPath.style.WebkitTransition = 'none';
progressPath.style.strokeDasharray = pathLength + ' ' + pathLength;
progressPath.style.strokeDashoffset = pathLength;
progressPath.getBoundingClientRect();
progressPath.style.transition = progressPath.style.WebkitTransition = 'stroke-dashoffset 10ms linear';
var updateProgress = function () {
var scroll = jQuery(window).scrollTop();
var height = jQuery(document).height() - jQuery(window).height();
var progress = pathLength - (scroll * pathLength / height);
progressPath.style.strokeDashoffset = progress;
}
updateProgress();
jQuery(window).scroll(updateProgress);
var offset = 50;
var duration = 550;
jQuery(window).on('scroll', function() {
if (jQuery(this).scrollTop() > offset) {
jQuery('.progress-wrap').addClass('active-progress');
} else {
jQuery('.progress-wrap').removeClass('active-progress');
}
});
jQuery('.progress-wrap').on('click', function(event) {
event.preventDefault();
jQuery('html, body').animate({scrollTop: 0}, duration);
return false;
})
});
</script>
<?php
}

