1 line
11 KiB
JSON
1 line
11 KiB
JSON
{"ast":null,"code":"import store from \"@/store\";\nexport default {\n data() {\n return {\n timeOutEvent: 0,\n longClick: 0,\n // 手指原始位置\n oldMousePos: {},\n // 元素原始位置\n oldNodePos: {},\n btnType: \"right\"\n };\n },\n computed: {\n Lang() {\n return store.state.config.$lang;\n },\n Type() {\n return store.state.config.$Type;\n }\n },\n methods: {\n touchstart(ev) {\n // 定时器控制长按时间,超过500毫秒开始进行拖拽\n this.timeOutEvent = setTimeout(() => {\n this.longClick = 1;\n }, 500);\n const selectDom = ev.currentTarget;\n const {\n pageX,\n pageY\n } = ev.touches[0]; // 手指位置\n const {\n offsetLeft,\n offsetTop\n } = selectDom; // 元素位置\n // 手指原始位置\n this.oldMousePos = {\n x: pageX,\n y: pageY\n };\n // 元素原始位置\n this.oldNodePos = {\n x: offsetLeft,\n y: offsetTop\n };\n selectDom.style.left = `${offsetLeft}px`;\n selectDom.style.top = `${offsetTop}px`;\n },\n touchMove(ev) {\n // 未达到500毫秒就移动则不触发长按,清空定时器\n clearTimeout(this.timeOutEvent);\n if (this.longClick === 1) {\n const selectDom = ev.currentTarget;\n // x轴偏移量\n const lefts = this.oldMousePos.x - this.oldNodePos.x;\n // y轴偏移量\n const tops = this.oldMousePos.y - this.oldNodePos.y;\n const {\n pageX,\n pageY\n } = ev.touches[0]; // 手指位置\n selectDom.style.left = `${pageX - lefts}px`;\n selectDom.style.top = `${pageY - tops}px`;\n }\n },\n touchEnd(ev) {\n // 清空定时器\n clearTimeout(this.timeOutEvent);\n if (this.longClick === 1) {\n this.longClick = 0;\n const selectDom = ev.currentTarget;\n const {\n clientWidth,\n clientHeight\n } = document.documentElement;\n const {\n offsetLeft,\n offsetTop\n } = selectDom;\n if (offsetTop < -10) {\n selectDom.style.top = \"-10px\";\n } else if (offsetTop + 30 > clientHeight) {\n selectDom.style.top = `${clientHeight - 30}px`;\n }\n if (offsetLeft < -10) {\n selectDom.style.left = \"-10px\";\n } else if (offsetLeft + 30 > clientWidth) {\n selectDom.style.left = `${clientWidth - 30}px`;\n }\n }\n },\n back() {\n // showConfirmDialog({\n // title: \"提示\",\n // message: \"您确认要退出游戏?\"\n // })\n // .then(() => {\n const protocol = document.location.protocol;\n const hostname = document.location.hostname;\n const port = document.location.port;\n let url = \"\";\n if (port) {\n url = `${protocol}//${hostname}:${port}`;\n } else {\n url = `${protocol}//${hostname}`;\n }\n window.location.href = url;\n // })\n // .catch(() => {})\n }\n }\n};","map":{"version":3,"names":["store","data","timeOutEvent","longClick","oldMousePos","oldNodePos","btnType","computed","Lang","state","config","$lang","Type","$Type","methods","touchstart","ev","setTimeout","selectDom","currentTarget","pageX","pageY","touches","offsetLeft","offsetTop","x","y","style","left","top","touchMove","clearTimeout","lefts","tops","touchEnd","clientWidth","clientHeight","document","documentElement","back","protocol","location","hostname","port","url","window","href"],"sources":["/Users/li/Desktop/work/work2/OG/GamePortrait/src/components/floatBtn.vue"],"sourcesContent":["<template>\n <div\n class=\"floatBtn portrait\"\n @click=\"back\"\n :class=\"[{ moveBtn: longClick }]\"\n @touchstart=\"touchstart($event)\"\n @touchmove=\"touchMove($event)\"\n @touchend=\"touchEnd($event)\"\n >\n <span v-if=\"Type && Lang && Lang[Type]\">{{ Lang[Type].Back }}</span>\n </div>\n</template>\n<script>\nimport store from \"@/store\"\nexport default {\n data() {\n return {\n timeOutEvent: 0,\n longClick: 0,\n // 手指原始位置\n oldMousePos: {},\n // 元素原始位置\n oldNodePos: {},\n btnType: \"right\"\n }\n },\n computed: {\n Lang() {\n return store.state.config.$lang\n },\n Type() {\n return store.state.config.$Type\n }\n },\n methods: {\n touchstart(ev) {\n // 定时器控制长按时间,超过500毫秒开始进行拖拽\n this.timeOutEvent = setTimeout(() => {\n this.longClick = 1\n }, 500)\n const selectDom = ev.currentTarget\n const { pageX, pageY } = ev.touches[0] // 手指位置\n const { offsetLeft, offsetTop } = selectDom // 元素位置\n // 手指原始位置\n this.oldMousePos = {\n x: pageX,\n y: pageY\n }\n // 元素原始位置\n this.oldNodePos = {\n x: offsetLeft,\n y: offsetTop\n }\n selectDom.style.left = `${offsetLeft}px`\n selectDom.style.top = `${offsetTop}px`\n },\n touchMove(ev) {\n // 未达到500毫秒就移动则不触发长按,清空定时器\n clearTimeout(this.timeOutEvent)\n if (this.longClick === 1) {\n const selectDom = ev.currentTarget\n // x轴偏移量\n const lefts = this.oldMousePos.x - this.oldNodePos.x\n // y轴偏移量\n const tops = this.oldMousePos.y - this.oldNodePos.y\n const { pageX, pageY } = ev.touches[0] // 手指位置\n selectDom.style.left = `${pageX - lefts}px`\n selectDom.style.top = `${pageY - tops}px`\n }\n },\n touchEnd(ev) {\n // 清空定时器\n clearTimeout(this.timeOutEvent)\n if (this.longClick === 1) {\n this.longClick = 0\n const selectDom = ev.currentTarget\n const { clientWidth, clientHeight } = document.documentElement\n const { offsetLeft, offsetTop } = selectDom\n if (offsetTop < -10) {\n selectDom.style.top = \"-10px\"\n } else if (offsetTop + 30 > clientHeight) {\n selectDom.style.top = `${clientHeight - 30}px`\n }\n\n if (offsetLeft < -10) {\n selectDom.style.left = \"-10px\"\n } else if (offsetLeft + 30 > clientWidth) {\n selectDom.style.left = `${clientWidth - 30}px`\n }\n }\n },\n back() {\n // showConfirmDialog({\n // title: \"提示\",\n // message: \"您确认要退出游戏?\"\n // })\n // .then(() => {\n const protocol = document.location.protocol\n const hostname = document.location.hostname\n const port = document.location.port\n let url = \"\"\n if (port) {\n url = `${protocol}//${hostname}:${port}`\n } else {\n url = `${protocol}//${hostname}`\n }\n window.location.href = url\n // })\n // .catch(() => {})\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@mixin notSelect {\n -moz-user-select: none; /*火狐*/\n -webkit-user-select: none; /*webkit浏览器*/\n -ms-user-select: none; /*IE10*/\n -khtml-user-select: none; /*早期浏览器*/\n user-select: none;\n}\n@mixin not-touch {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.floatBtn {\n @include notSelect;\n @include not-touch();\n position: fixed;\n overflow: hidden;\n width: 40px;\n left: 67%;\n top: 4px;\n color: #e0933a;\n font-size: 12px;\n height: 40px;\n line-height: 40px;\n text-align: center;\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n align-items: center;\n transform: rotateX(0deg);\n z-index: 999;\n border-radius: 50px;\n font-weight: bold;\n opacity: 0.8;\n box-shadow: 0px 0px 4px 0.5px rgba(236, 197, 197, 0.5);\n &:active {\n box-shadow: 0px 0px 4px 0.5px rgba(236, 197, 197, 0.8);\n }\n &.moveBtn {\n opacity: 1;\n background: rgba(255, 255, 255, 0.8);\n box-shadow: 0px 0px 4px 0.5px rgba(224, 147, 58, 0.7);\n }\n span {\n white-space: nowrap;\n }\n}\n</style>\n"],"mappings":"AAaA,OAAOA,KAAI,MAAO,SAAQ;AAC1B,eAAe;EACbC,IAAIA,CAAA,EAAG;IACL,OAAO;MACLC,YAAY,EAAE,CAAC;MACfC,SAAS,EAAE,CAAC;MACZ;MACAC,WAAW,EAAE,CAAC,CAAC;MACf;MACAC,UAAU,EAAE,CAAC,CAAC;MACdC,OAAO,EAAE;IACX;EACF,CAAC;EACDC,QAAQ,EAAE;IACRC,IAAIA,CAAA,EAAG;MACL,OAAOR,KAAK,CAACS,KAAK,CAACC,MAAM,CAACC,KAAI;IAChC,CAAC;IACDC,IAAIA,CAAA,EAAG;MACL,OAAOZ,KAAK,CAACS,KAAK,CAACC,MAAM,CAACG,KAAI;IAChC;EACF,CAAC;EACDC,OAAO,EAAE;IACPC,UAAUA,CAACC,EAAE,EAAE;MACb;MACA,IAAI,CAACd,YAAW,GAAIe,UAAU,CAAC,MAAM;QACnC,IAAI,CAACd,SAAQ,GAAI;MACnB,CAAC,EAAE,GAAG;MACN,MAAMe,SAAQ,GAAIF,EAAE,CAACG,aAAY;MACjC,MAAM;QAAEC,KAAK;QAAEC;MAAM,IAAIL,EAAE,CAACM,OAAO,CAAC,CAAC,GAAE;MACvC,MAAM;QAAEC,UAAU;QAAEC;MAAU,IAAIN,SAAQ,EAAE;MAC5C;MACA,IAAI,CAACd,WAAU,GAAI;QACjBqB,CAAC,EAAEL,KAAK;QACRM,CAAC,EAAEL;MACL;MACA;MACA,IAAI,CAAChB,UAAS,GAAI;QAChBoB,CAAC,EAAEF,UAAU;QACbG,CAAC,EAAEF;MACL;MACAN,SAAS,CAACS,KAAK,CAACC,IAAG,GAAK,GAAEL,UAAW,IAAE;MACvCL,SAAS,CAACS,KAAK,CAACE,GAAE,GAAK,GAAEL,SAAU,IAAE;IACvC,CAAC;IACDM,SAASA,CAACd,EAAE,EAAE;MACZ;MACAe,YAAY,CAAC,IAAI,CAAC7B,YAAY;MAC9B,IAAI,IAAI,CAACC,SAAQ,KAAM,CAAC,EAAE;QACxB,MAAMe,SAAQ,GAAIF,EAAE,CAACG,aAAY;QACjC;QACA,MAAMa,KAAI,GAAI,IAAI,CAAC5B,WAAW,CAACqB,CAAA,GAAI,IAAI,CAACpB,UAAU,CAACoB,CAAA;QACnD;QACA,MAAMQ,IAAG,GAAI,IAAI,CAAC7B,WAAW,CAACsB,CAAA,GAAI,IAAI,CAACrB,UAAU,CAACqB,CAAA;QAClD,MAAM;UAAEN,KAAK;UAAEC;QAAM,IAAIL,EAAE,CAACM,OAAO,CAAC,CAAC,GAAE;QACvCJ,SAAS,CAACS,KAAK,CAACC,IAAG,GAAK,GAAER,KAAI,GAAIY,KAAM,IAAE;QAC1Cd,SAAS,CAACS,KAAK,CAACE,GAAE,GAAK,GAAER,KAAI,GAAIY,IAAK,IAAE;MAC1C;IACF,CAAC;IACDC,QAAQA,CAAClB,EAAE,EAAE;MACX;MACAe,YAAY,CAAC,IAAI,CAAC7B,YAAY;MAC9B,IAAI,IAAI,CAACC,SAAQ,KAAM,CAAC,EAAE;QACxB,IAAI,CAACA,SAAQ,GAAI;QACjB,MAAMe,SAAQ,GAAIF,EAAE,CAACG,aAAY;QACjC,MAAM;UAAEgB,WAAW;UAAEC;QAAa,IAAIC,QAAQ,CAACC,eAAc;QAC7D,MAAM;UAAEf,UAAU;UAAEC;QAAU,IAAIN,SAAQ;QAC1C,IAAIM,SAAQ,GAAI,CAAC,EAAE,EAAE;UACnBN,SAAS,CAACS,KAAK,CAACE,GAAE,GAAI,OAAM;QAC9B,OAAO,IAAIL,SAAQ,GAAI,EAAC,GAAIY,YAAY,EAAE;UACxClB,SAAS,CAACS,KAAK,CAACE,GAAE,GAAK,GAAEO,YAAW,GAAI,EAAG,IAAE;QAC/C;QAEA,IAAIb,UAAS,GAAI,CAAC,EAAE,EAAE;UACpBL,SAAS,CAACS,KAAK,CAACC,IAAG,GAAI,OAAM;QAC/B,OAAO,IAAIL,UAAS,GAAI,EAAC,GAAIY,WAAW,EAAE;UACxCjB,SAAS,CAACS,KAAK,CAACC,IAAG,GAAK,GAAEO,WAAU,GAAI,EAAG,IAAE;QAC/C;MACF;IACF,CAAC;IACDI,IAAIA,CAAA,EAAG;MACL;MACA;MACA;MACA;MACA;MACA,MAAMC,QAAO,GAAIH,QAAQ,CAACI,QAAQ,CAACD,QAAO;MAC1C,MAAME,QAAO,GAAIL,QAAQ,CAACI,QAAQ,CAACC,QAAO;MAC1C,MAAMC,IAAG,GAAIN,QAAQ,CAACI,QAAQ,CAACE,IAAG;MAClC,IAAIC,GAAE,GAAI,EAAC;MACX,IAAID,IAAI,EAAE;QACRC,GAAE,GAAK,GAAEJ,QAAS,KAAIE,QAAS,IAAGC,IAAK;MACzC,OAAO;QACLC,GAAE,GAAK,GAAEJ,QAAS,KAAIE,QAAS;MACjC;MACAG,MAAM,CAACJ,QAAQ,CAACK,IAAG,GAAIF,GAAE;MACzB;MACA;IACF;EACF;AACF"},"metadata":{},"sourceType":"module","externalDependencies":[]} |