var backtotopTemplate = `
`;
root.components['backtotop-component'] = {
props: {
visibleoffset: {
type: [String, Number],
default: 600
},
},
template: backtotopTemplate,
data () {
return {
visible: false
}
},
mounted () {
let vm = this;
window.addEventListener('scroll', this.catchScroll);
let currentScroll = document.documentElement.scrollTop || document.body.scrollTop
vm.visible = (currentScroll > 100);
},
destroyed () {
window.removeEventListener('scroll', this.catchScroll)
},
methods: {
catchScroll () {
let vm = this;
vm.visible = (window.pageYOffset > 100);
},
backToTop () {
let vm = this;
vm.scrollAnimate();
},
scrollAnimate: function() {
let vm = this;
let currentScroll = document.documentElement.scrollTop || document.body.scrollTop
if (currentScroll > 0) {
//alert(currentScroll);
window.requestAnimationFrame(vm.scrollAnimate)
window.scrollTo(0, Math.floor(currentScroll - (currentScroll / 5)))
}
}
}
};