{"remainingRequest":"D:\\源码\\vue-element-admin-master\\node_modules\\babel-loader\\lib\\index.js!D:\\源码\\vue-element-admin-master\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!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\\babel.config.js","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:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdCYWNrVG9Ub3AnLAogIHByb3BzOiB7CiAgICB2aXNpYmlsaXR5SGVpZ2h0OiB7CiAgICAgIHR5cGU6IE51bWJlciwKICAgICAgZGVmYXVsdDogNDAwCiAgICB9LAogICAgYmFja1Bvc2l0aW9uOiB7CiAgICAgIHR5cGU6IE51bWJlciwKICAgICAgZGVmYXVsdDogMAogICAgfSwKICAgIGN1c3RvbVN0eWxlOiB7CiAgICAgIHR5cGU6IE9iamVjdCwKICAgICAgZGVmYXVsdDogZnVuY3Rpb24gX2RlZmF1bHQoKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIHJpZ2h0OiAnNTBweCcsCiAgICAgICAgICBib3R0b206ICc1MHB4JywKICAgICAgICAgIHdpZHRoOiAnNDBweCcsCiAgICAgICAgICBoZWlnaHQ6ICc0MHB4JywKICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzRweCcsCiAgICAgICAgICAnbGluZS1oZWlnaHQnOiAnNDVweCcsCiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2U3ZWFmMScKICAgICAgICB9OwogICAgICB9CiAgICB9LAogICAgdHJhbnNpdGlvbk5hbWU6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAnZmFkZScKICAgIH0KICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICB2aXNpYmxlOiBmYWxzZSwKICAgICAgaW50ZXJ2YWw6IG51bGwsCiAgICAgIGlzTW92aW5nOiBmYWxzZQogICAgfTsKICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVTY3JvbGwpOwogIH0sCiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSgpIHsKICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmhhbmRsZVNjcm9sbCk7CgogICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHsKICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKTsKICAgIH0KICB9LAogIG1ldGhvZHM6IHsKICAgIGhhbmRsZVNjcm9sbDogZnVuY3Rpb24gaGFuZGxlU2Nyb2xsKCkgewogICAgICB0aGlzLnZpc2libGUgPSB3aW5kb3cucGFnZVlPZmZzZXQgPiB0aGlzLnZpc2liaWxpdHlIZWlnaHQ7CiAgICB9LAogICAgYmFja1RvVG9wOiBmdW5jdGlvbiBiYWNrVG9Ub3AoKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CgogICAgICBpZiAodGhpcy5pc01vdmluZykgcmV0dXJuOwogICAgICB2YXIgc3RhcnQgPSB3aW5kb3cucGFnZVlPZmZzZXQ7CiAgICAgIHZhciBpID0gMDsKICAgICAgdGhpcy5pc01vdmluZyA9IHRydWU7CiAgICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIG5leHQgPSBNYXRoLmZsb29yKF90aGlzLmVhc2VJbk91dFF1YWQoMTAgKiBpLCBzdGFydCwgLXN0YXJ0LCA1MDApKTsKCiAgICAgICAgaWYgKG5leHQgPD0gX3RoaXMuYmFja1Bvc2l0aW9uKSB7CiAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgX3RoaXMuYmFja1Bvc2l0aW9uKTsKICAgICAgICAgIGNsZWFySW50ZXJ2YWwoX3RoaXMuaW50ZXJ2YWwpOwogICAgICAgICAgX3RoaXMuaXNNb3ZpbmcgPSBmYWxzZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIG5leHQpOwogICAgICAgIH0KCiAgICAgICAgaSsrOwogICAgICB9LCAxNi43KTsKICAgIH0sCiAgICBlYXNlSW5PdXRRdWFkOiBmdW5jdGlvbiBlYXNlSW5PdXRRdWFkKHQsIGIsIGMsIGQpIHsKICAgICAgaWYgKCh0IC89IGQgLyAyKSA8IDEpIHJldHVybiBjIC8gMiAqIHQgKiB0ICsgYjsKICAgICAgcmV0dXJuIC1jIC8gMiAqICgtLXQgKiAodCAtIDIpIC0gMSkgKyBiOwogICAgfQogIH0KfTs="},{"version":3,"mappings":";;;;;;;;;AASA;EACAA,iBADA;EAEAC;IACAC;MACAC,YADA;MAEAC;IAFA,CADA;IAKAC;MACAF,YADA;MAEAC;IAFA,CALA;IASAE;MACAH,YADA;MAEAC;QACA;UACAG,aADA;UAEAC,cAFA;UAGAC,aAHA;UAIAC,cAJA;UAKA,sBALA;UAMA,qBANA;UAOAC;QAPA;MASA;IAZA,CATA;IAuBAC;MACAT,YADA;MAEAC;IAFA;EAvBA,CAFA;EA8BAS,IA9BA,kBA8BA;IACA;MACAC,cADA;MAEAC,cAFA;MAGAC;IAHA;EAKA,CApCA;EAqCAC,OArCA,qBAqCA;IACAC;EACA,CAvCA;EAwCAC,aAxCA,2BAwCA;IACAD;;IACA;MACAE;IACA;EACA,CA7CA;EA8CAC;IACAC,YADA,0BACA;MACA;IACA,CAHA;IAIAC,SAJA,uBAIA;MAAA;;MACA;MACA;MACA;MACA;MACA;QACA;;QACA;UACAL;UACAE;UACA;QACA,CAJA,MAIA;UACAF;QACA;;QACAM;MACA,CAVA,EAUA,IAVA;IAWA,CApBA;IAqBAC,aArBA,yBAqBAC,CArBA,EAqBAC,CArBA,EAqBAC,CArBA,EAqBAC,CArBA,EAqBA;MACA;MACA;IACA;EAxBA;AA9CA","names":["name","props","visibilityHeight","type","default","backPosition","customStyle","right","bottom","width","height","background","transitionName","data","visible","interval","isMoving","mounted","window","beforeDestroy","clearInterval","methods","handleScroll","backToTop","i","easeInOutQuad","t","b","c","d"],"sourceRoot":"src/components/BackToTop","sources":["index.vue"],"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"]}]}
|