vue-scroll-up
Version:
A Vue.js component to top of the page
1 lines • 2.55 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("VueScrollUp",[],t):"object"==typeof exports?exports.VueScrollUp=t():e.VueScrollUp=t()}(window,(function(){return function(e){var t={};function o(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="/dist/",o(o.s=0)}([function(e,t,o){"use strict";o.r(t);var n=function(e,t,o,n,r,i,c,l){var u=typeof(e=e||{}).default;"object"!==u&&"function"!==u||(e=e.default);var s,f="function"==typeof e?e.options:e;if(t&&(f.render=t,f.staticRenderFns=[],f._compiled=!0),r&&(s=r),s)if(f.functional){f._injectStyles=s;var d=f.render;f.render=function(e,t){return s.call(t),d(e,t)}}else{var a=f.beforeCreate;f.beforeCreate=a?[].concat(a,s):[s]}return{exports:e,options:f}}({props:{scrollDuration:{type:Number,default:1e3},scrollY:{type:Number,default:250}},data:()=>({pointer:null}),methods:{scrollToTop(){const e=window.scrollY/2;let t=0,o=performance.now(),n=this;window.requestAnimationFrame((function r(i){(t+=Math.PI/(n.scrollDuration/(i-o)))>=Math.PI?window.scrollTo(0,0):0!==window.scrollY&&(window.scrollTo(0,Math.round(e+e*Math.cos(t))),o=i,window.requestAnimationFrame(r))}))},checkPoint(){this.pointer=window.scrollY}},computed:{isTop(){return this.pointer<this.scrollY}},created(){window.addEventListener("scroll",this.checkPoint)},destroyed(){window.removeEventListener("scroll",this.checkPoint)}},(function(){var e=this.$createElement,t=this._self._c||e;return t("div",[this.isTop?this._e():t("button",{staticClass:"vue-scroll-up",on:{click:this.scrollToTop}})])}),0,0,(function(e){o(1)})).exports;t.default=n,"undefined"!=typeof window&&window.Vue&&window.Vue.component("scroll-up",n)},function(e,t){}])}));