1 line
3.0 KiB
JSON
1 line
3.0 KiB
JSON
{"remainingRequest":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\src\\layout\\components\\TagsView\\ScrollPane.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\src\\layout\\components\\TagsView\\ScrollPane.vue","mtime":1732871026540},{"path":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1732872824662},{"path":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":1732872825017},{"path":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1732872824662},{"path":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":1732872825835}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n\r\nconst tagAndTagSpacing = 4 // tagAndTagSpacing\r\n\r\nexport default {\r\n name: 'ScrollPane',\r\n data() {\r\n return {\r\n left: 0\r\n }\r\n },\r\n computed: {\r\n scrollWrapper() {\r\n return this.$refs.scrollContainer.$refs.wrap\r\n }\r\n },\r\n methods: {\r\n handleScroll(e) {\r\n const eventDelta = e.wheelDelta || -e.deltaY * 40\r\n const $scrollWrapper = this.scrollWrapper\r\n $scrollWrapper.scrollLeft = $scrollWrapper.scrollLeft + eventDelta / 4\r\n },\r\n moveToTarget(currentTag) {\r\n const $container = this.$refs.scrollContainer.$el\r\n const $containerWidth = $container.offsetWidth\r\n const $scrollWrapper = this.scrollWrapper\r\n const tagList = this.$parent.$refs.tag\r\n\r\n let firstTag = null\r\n let lastTag = null\r\n\r\n // find first tag and last tag\r\n if (tagList.length > 0) {\r\n firstTag = tagList[0]\r\n lastTag = tagList[tagList.length - 1]\r\n }\r\n\r\n if (firstTag === currentTag) {\r\n $scrollWrapper.scrollLeft = 0\r\n } else if (lastTag === currentTag) {\r\n $scrollWrapper.scrollLeft = $scrollWrapper.scrollWidth - $containerWidth\r\n } else {\r\n // find preTag and nextTag\r\n const currentIndex = tagList.findIndex(item => item === currentTag)\r\n const prevTag = tagList[currentIndex - 1]\r\n const nextTag = tagList[currentIndex + 1]\r\n\r\n // the tag's offsetLeft after of nextTag\r\n const afterNextTagOffsetLeft = nextTag.$el.offsetLeft + nextTag.$el.offsetWidth + tagAndTagSpacing\r\n\r\n // the tag's offsetLeft before of prevTag\r\n const beforePrevTagOffsetLeft = prevTag.$el.offsetLeft - tagAndTagSpacing\r\n\r\n if (afterNextTagOffsetLeft > $scrollWrapper.scrollLeft + $containerWidth) {\r\n $scrollWrapper.scrollLeft = afterNextTagOffsetLeft - $containerWidth\r\n } else if (beforePrevTagOffsetLeft < $scrollWrapper.scrollLeft) {\r\n $scrollWrapper.scrollLeft = beforePrevTagOffsetLeft\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",null]} |