|
@@ -117,6 +117,37 @@
|
|
{{ item.name.split('').join('\n') }}
|
|
{{ item.name.split('').join('\n') }}
|
|
</div>
|
|
</div>
|
|
</button>
|
|
</button>
|
|
|
|
+
|
|
|
|
+ <button
|
|
|
|
+ v-show="!isShowCast"
|
|
|
|
+ v-click-audio
|
|
|
|
+ class="watch-cast"
|
|
|
|
+ :style="{
|
|
|
|
+ right: castBtnPos.value.x + 'px',
|
|
|
|
+ bottom: castBtnPos.value.y + 'px',
|
|
|
|
+ }"
|
|
|
|
+ @click="isShowCast = true"
|
|
|
|
+ >
|
|
|
|
+ <img
|
|
|
|
+ class=""
|
|
|
|
+ src="@/assets/images/btn-back.png"
|
|
|
|
+ alt=""
|
|
|
|
+ draggable="false"
|
|
|
|
+ >
|
|
|
|
+ </button>
|
|
|
|
+
|
|
|
|
+ <transition name="fade-in-out-quick">
|
|
|
|
+ <CastView
|
|
|
|
+ v-if="isShowCast"
|
|
|
|
+ :style="{
|
|
|
|
+ left: castPos.value.x + 'px',
|
|
|
|
+ right: castPos.value.x + 'px',
|
|
|
|
+ top: castPos.value.y + 'px',
|
|
|
|
+ bottom: castPos.value.y + 'px',
|
|
|
|
+ }"
|
|
|
|
+ @close="isShowCast = false"
|
|
|
|
+ />
|
|
|
|
+ </transition>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -124,11 +155,13 @@
|
|
import { onMounted, onUnmounted, watch, ref, reactive, computed } from "vue"
|
|
import { onMounted, onUnmounted, watch, ref, reactive, computed } from "vue"
|
|
import StartUp from "@/components/StartUp.vue"
|
|
import StartUp from "@/components/StartUp.vue"
|
|
import useWindowSizeAdaptor from '@/useFunctions/useWindowSizeAdaptor.js'
|
|
import useWindowSizeAdaptor from '@/useFunctions/useWindowSizeAdaptor.js'
|
|
|
|
+import CastView from "@/components/CastView.vue"
|
|
|
|
|
|
export default {
|
|
export default {
|
|
name: 'HomeView',
|
|
name: 'HomeView',
|
|
components: {
|
|
components: {
|
|
StartUp,
|
|
StartUp,
|
|
|
|
+ CastView,
|
|
},
|
|
},
|
|
setup() {
|
|
setup() {
|
|
const { windowSizeWhenDesign, unit } = useWindowSizeAdaptor()
|
|
const { windowSizeWhenDesign, unit } = useWindowSizeAdaptor()
|
|
@@ -175,6 +208,41 @@ export default {
|
|
window.removeEventListener('resize', computeLionsPos)
|
|
window.removeEventListener('resize', computeLionsPos)
|
|
})
|
|
})
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * cast列表相关
|
|
|
|
+ */
|
|
|
|
+ const isShowCast = ref(false)
|
|
|
|
+
|
|
|
|
+ const castBtnPos = reactive({ value: [] })
|
|
|
|
+ function computeCastBtnPos() {
|
|
|
|
+ castBtnPos.value = utils.mapPosFromDraftToWindow({
|
|
|
|
+ x: 50,
|
|
|
|
+ y: 50,
|
|
|
|
+ }, 'contain')
|
|
|
|
+ }
|
|
|
|
+ onMounted(() => {
|
|
|
|
+ computeCastBtnPos()
|
|
|
|
+ window.addEventListener('resize', computeCastBtnPos)
|
|
|
|
+ })
|
|
|
|
+ onUnmounted(() => {
|
|
|
|
+ window.removeEventListener('resize', computeCastBtnPos)
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ const castPos = reactive({ value: [] })
|
|
|
|
+ function computeCastPos() {
|
|
|
|
+ castPos.value = utils.mapPosFromDraftToWindow({
|
|
|
|
+ x: 50,
|
|
|
|
+ y: 50,
|
|
|
|
+ }, 'contain')
|
|
|
|
+ }
|
|
|
|
+ onMounted(() => {
|
|
|
|
+ computeCastPos()
|
|
|
|
+ window.addEventListener('resize', computeCastPos)
|
|
|
|
+ })
|
|
|
|
+ onUnmounted(() => {
|
|
|
|
+ window.removeEventListener('resize', computeCastPos)
|
|
|
|
+ })
|
|
|
|
+
|
|
return {
|
|
return {
|
|
labelPosList,
|
|
labelPosList,
|
|
isHideMenu,
|
|
isHideMenu,
|
|
@@ -183,6 +251,9 @@ export default {
|
|
unit,
|
|
unit,
|
|
lionMalePos,
|
|
lionMalePos,
|
|
lionFemalePos,
|
|
lionFemalePos,
|
|
|
|
+ castBtnPos,
|
|
|
|
+ isShowCast,
|
|
|
|
+ castPos,
|
|
}
|
|
}
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
@@ -365,5 +436,21 @@ export default {
|
|
transform: scale(1.1);
|
|
transform: scale(1.1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ >button.watch-cast{
|
|
|
|
+ position: absolute;
|
|
|
|
+ width: calc(70 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
|
|
|
|
+ height: calc(72 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
|
|
|
|
+ z-index: 4;
|
|
|
|
+ &:hover {
|
|
|
|
+ transform: scale(1.1);
|
|
|
|
+ }
|
|
|
|
+ >img{
|
|
|
|
+ position: absolute;
|
|
|
|
+ left: 0;
|
|
|
|
+ top: 0;
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 100%;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
</style>
|
|
</style>
|