{"remainingRequest":"D:\\源码\\vue-element-admin-master\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\源码\\vue-element-admin-master\\src\\components\\Sticky\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\源码\\vue-element-admin-master\\src\\components\\Sticky\\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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnU3RpY2t5JywKICBwcm9wczogewogICAgc3RpY2t5VG9wOiB7CiAgICAgIHR5cGU6IE51bWJlciwKICAgICAgZGVmYXVsdDogMAogICAgfSwKICAgIHpJbmRleDogewogICAgICB0eXBlOiBOdW1iZXIsCiAgICAgIGRlZmF1bHQ6IDEKICAgIH0sCiAgICBjbGFzc05hbWU6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAnJwogICAgfQogIH0sCiAgZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGFjdGl2ZTogZmFsc2UsCiAgICAgIHBvc2l0aW9uOiAnJywKICAgICAgd2lkdGg6IHVuZGVmaW5lZCwKICAgICAgaGVpZ2h0OiB1bmRlZmluZWQsCiAgICAgIGlzU3RpY2t5OiBmYWxzZQogICAgfQogIH0sCiAgbW91bnRlZCgpIHsKICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy4kZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0CiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVTY3JvbGwpCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5oYW5kbGVSZXNpemUpCiAgfSwKICBhY3RpdmF0ZWQoKSB7CiAgICB0aGlzLmhhbmRsZVNjcm9sbCgpCiAgfSwKICBkZXN0cm95ZWQoKSB7CiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVTY3JvbGwpCiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5oYW5kbGVSZXNpemUpCiAgfSwKICBtZXRob2RzOiB7CiAgICBzdGlja3koKSB7CiAgICAgIGlmICh0aGlzLmFjdGl2ZSkgewogICAgICAgIHJldHVybgogICAgICB9CiAgICAgIHRoaXMucG9zaXRpb24gPSAnZml4ZWQnCiAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZQogICAgICB0aGlzLndpZHRoID0gdGhpcy53aWR0aCArICdweCcKICAgICAgdGhpcy5pc1N0aWNreSA9IHRydWUKICAgIH0sCiAgICBoYW5kbGVSZXNldCgpIHsKICAgICAgaWYgKCF0aGlzLmFjdGl2ZSkgewogICAgICAgIHJldHVybgogICAgICB9CiAgICAgIHRoaXMucmVzZXQoKQogICAgfSwKICAgIHJlc2V0KCkgewogICAgICB0aGlzLnBvc2l0aW9uID0gJycKICAgICAgdGhpcy53aWR0aCA9ICdhdXRvJwogICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlCiAgICAgIHRoaXMuaXNTdGlja3kgPSBmYWxzZQogICAgfSwKICAgIGhhbmRsZVNjcm9sbCgpIHsKICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLiRlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aAogICAgICB0aGlzLndpZHRoID0gd2lkdGggfHwgJ2F1dG8nCiAgICAgIGNvbnN0IG9mZnNldFRvcCA9IHRoaXMuJGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcAogICAgICBpZiAob2Zmc2V0VG9wIDwgdGhpcy5zdGlja3lUb3ApIHsKICAgICAgICB0aGlzLnN0aWNreSgpCiAgICAgICAgcmV0dXJuCiAgICAgIH0KICAgICAgdGhpcy5oYW5kbGVSZXNldCgpCiAgICB9LAogICAgaGFuZGxlUmVzaXplKCkgewogICAgICBpZiAodGhpcy5pc1N0aWNreSkgewogICAgICAgIHRoaXMud2lkdGggPSB0aGlzLiRlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCArICdweCcKICAgICAgfQogICAgfQogIH0KfQo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;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;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/components/Sticky","sourcesContent":["<template>\n <div :style=\"{height:height+'px',zIndex:zIndex}\">\n <div\n :class=\"className\"\n :style=\"{top:(isSticky ? stickyTop +'px' : ''),zIndex:zIndex,position:position,width:width,height:height+'px'}\"\n >\n <slot>\n <div>sticky</div>\n </slot>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'Sticky',\n props: {\n stickyTop: {\n type: Number,\n default: 0\n },\n zIndex: {\n type: Number,\n default: 1\n },\n className: {\n type: String,\n default: ''\n }\n },\n data() {\n return {\n active: false,\n position: '',\n width: undefined,\n height: undefined,\n isSticky: false\n }\n },\n mounted() {\n this.height = this.$el.getBoundingClientRect().height\n window.addEventListener('scroll', this.handleScroll)\n window.addEventListener('resize', this.handleResize)\n },\n activated() {\n this.handleScroll()\n },\n destroyed() {\n window.removeEventListener('scroll', this.handleScroll)\n window.removeEventListener('resize', this.handleResize)\n },\n methods: {\n sticky() {\n if (this.active) {\n return\n }\n this.position = 'fixed'\n this.active = true\n this.width = this.width + 'px'\n this.isSticky = true\n },\n handleReset() {\n if (!this.active) {\n return\n }\n this.reset()\n },\n reset() {\n this.position = ''\n this.width = 'auto'\n this.active = false\n this.isSticky = false\n },\n handleScroll() {\n const width = this.$el.getBoundingClientRect().width\n this.width = width || 'auto'\n const offsetTop = this.$el.getBoundingClientRect().top\n if (offsetTop < this.stickyTop) {\n this.sticky()\n return\n }\n this.handleReset()\n },\n handleResize() {\n if (this.isSticky) {\n this.width = this.$el.getBoundingClientRect().width + 'px'\n }\n }\n }\n}\n</script>\n"]}]}
|