{"remainingRequest":"D:\\源码\\vue-element-admin-master\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\源码\\vue-element-admin-master\\src\\components\\BackToTop\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\源码\\vue-element-admin-master\\src\\components\\BackToTop\\index.vue","mtime":1649647926000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnQmFja1RvVG9wJywKICBwcm9wczogewogICAgdmlzaWJpbGl0eUhlaWdodDogewogICAgICB0eXBlOiBOdW1iZXIsCiAgICAgIGRlZmF1bHQ6IDQwMAogICAgfSwKICAgIGJhY2tQb3NpdGlvbjogewogICAgICB0eXBlOiBOdW1iZXIsCiAgICAgIGRlZmF1bHQ6IDAKICAgIH0sCiAgICBjdXN0b21TdHlsZTogewogICAgICB0eXBlOiBPYmplY3QsCiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICByaWdodDogJzUwcHgnLAogICAgICAgICAgYm90dG9tOiAnNTBweCcsCiAgICAgICAgICB3aWR0aDogJzQwcHgnLAogICAgICAgICAgaGVpZ2h0OiAnNDBweCcsCiAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICc0cHgnLAogICAgICAgICAgJ2xpbmUtaGVpZ2h0JzogJzQ1cHgnLAogICAgICAgICAgYmFja2dyb3VuZDogJyNlN2VhZjEnCiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgdHJhbnNpdGlvbk5hbWU6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAnZmFkZScKICAgIH0KICB9LAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICB2aXNpYmxlOiBmYWxzZSwKICAgICAgaW50ZXJ2YWw6IG51bGwsCiAgICAgIGlzTW92aW5nOiBmYWxzZQogICAgfQogIH0sCiAgbW91bnRlZCgpIHsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmhhbmRsZVNjcm9sbCkKICB9LAogIGJlZm9yZURlc3Ryb3koKSB7CiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVTY3JvbGwpCiAgICBpZiAodGhpcy5pbnRlcnZhbCkgewogICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpCiAgICB9CiAgfSwKICBtZXRob2RzOiB7CiAgICBoYW5kbGVTY3JvbGwoKSB7CiAgICAgIHRoaXMudmlzaWJsZSA9IHdpbmRvdy5wYWdlWU9mZnNldCA+IHRoaXMudmlzaWJpbGl0eUhlaWdodAogICAgfSwKICAgIGJhY2tUb1RvcCgpIHsKICAgICAgaWYgKHRoaXMuaXNNb3ZpbmcpIHJldHVybgogICAgICBjb25zdCBzdGFydCA9IHdpbmRvdy5wYWdlWU9mZnNldAogICAgICBsZXQgaSA9IDAKICAgICAgdGhpcy5pc01vdmluZyA9IHRydWUKICAgICAgdGhpcy5pbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHsKICAgICAgICBjb25zdCBuZXh0ID0gTWF0aC5mbG9vcih0aGlzLmVhc2VJbk91dFF1YWQoMTAgKiBpLCBzdGFydCwgLXN0YXJ0LCA1MDApKQogICAgICAgIGlmIChuZXh0IDw9IHRoaXMuYmFja1Bvc2l0aW9uKSB7CiAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgdGhpcy5iYWNrUG9zaXRpb24pCiAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpCiAgICAgICAgICB0aGlzLmlzTW92aW5nID0gZmFsc2UKICAgICAgICB9IGVsc2UgewogICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIG5leHQpCiAgICAgICAgfQogICAgICAgIGkrKwogICAgICB9LCAxNi43KQogICAgfSwKICAgIGVhc2VJbk91dFF1YWQodCwgYiwgYywgZCkgewogICAgICBpZiAoKHQgLz0gZCAvIDIpIDwgMSkgcmV0dXJuIGMgLyAyICogdCAqIHQgKyBiCiAgICAgIHJldHVybiAtYyAvIDIgKiAoLS10ICogKHQgLSAyKSAtIDEpICsgYgogICAgfQogIH0KfQo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/components/BackToTop","sourcesContent":["<template>\n <transition :name=\"transitionName\">\n <div v-show=\"visible\" :style=\"customStyle\" class=\"back-to-ceiling\" @click=\"backToTop\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 17 17\" xmlns=\"http://www.w3.org/2000/svg\" class=\"Icon Icon--backToTopArrow\" aria-hidden=\"true\" style=\"height:16px;width:16px\"><path d=\"M12.036 15.59a1 1 0 0 1-.997.995H5.032a.996.996 0 0 1-.997-.996V8.584H1.03c-1.1 0-1.36-.633-.578-1.416L7.33.29a1.003 1.003 0 0 1 1.412 0l6.878 6.88c.782.78.523 1.415-.58 1.415h-3.004v7.004z\" /></svg>\n </div>\n </transition>\n</template>\n\n<script>\nexport default {\n name: 'BackToTop',\n props: {\n visibilityHeight: {\n type: Number,\n default: 400\n },\n backPosition: {\n type: Number,\n default: 0\n },\n customStyle: {\n type: Object,\n default: function() {\n return {\n right: '50px',\n bottom: '50px',\n width: '40px',\n height: '40px',\n 'border-radius': '4px',\n 'line-height': '45px',\n background: '#e7eaf1'\n }\n }\n },\n transitionName: {\n type: String,\n default: 'fade'\n }\n },\n data() {\n return {\n visible: false,\n interval: null,\n isMoving: false\n }\n },\n mounted() {\n window.addEventListener('scroll', this.handleScroll)\n },\n beforeDestroy() {\n window.removeEventListener('scroll', this.handleScroll)\n if (this.interval) {\n clearInterval(this.interval)\n }\n },\n methods: {\n handleScroll() {\n this.visible = window.pageYOffset > this.visibilityHeight\n },\n backToTop() {\n if (this.isMoving) return\n const start = window.pageYOffset\n let i = 0\n this.isMoving = true\n this.interval = setInterval(() => {\n const next = Math.floor(this.easeInOutQuad(10 * i, start, -start, 500))\n if (next <= this.backPosition) {\n window.scrollTo(0, this.backPosition)\n clearInterval(this.interval)\n this.isMoving = false\n } else {\n window.scrollTo(0, next)\n }\n i++\n }, 16.7)\n },\n easeInOutQuad(t, b, c, d) {\n if ((t /= d / 2) < 1) return c / 2 * t * t + b\n return -c / 2 * (--t * (t - 2) - 1) + b\n }\n }\n}\n</script>\n\n<style scoped>\n.back-to-ceiling {\n position: fixed;\n display: inline-block;\n text-align: center;\n cursor: pointer;\n}\n\n.back-to-ceiling:hover {\n background: #d5dbe7;\n}\n\n.fade-enter-active,\n.fade-leave-active {\n transition: opacity .5s;\n}\n\n.fade-enter,\n.fade-leave-to {\n opacity: 0\n}\n\n.back-to-ceiling .Icon {\n fill: #9aaabf;\n background: none;\n}\n</style>\n"]}]}
|