|
@@ -7,22 +7,19 @@ import useRollFu from "../rollFu.js"
|
|
|
|
|
|
import HotspotDetail3 from "@/views/HotspotDetail3.vue"
|
|
import HotspotDetail3 from "@/views/HotspotDetail3.vue"
|
|
import HotspotDetail1 from "@/views/HotspotDetail1.vue"
|
|
import HotspotDetail1 from "@/views/HotspotDetail1.vue"
|
|
-import PaintingDetail from '@/views/PaintingDetail.vue'
|
|
|
|
|
|
+import PaintingDetail from "@/views/PaintingDetail.vue"
|
|
|
|
|
|
-import DetailImg from '@/assets/images/icon_home_detail-min.png'
|
|
|
|
-import DetailImgAc from '@/assets/images/icon_home_detail-min-ac.png'
|
|
|
|
-import AuthorImg from '@/assets/images/icon_home_author-min.png'
|
|
|
|
-import AuthorImgAc from '@/assets/images/icon_home_author-min-ac.png'
|
|
|
|
|
|
+import DetailImg from "@/assets/images/icon_home_detail-min.png"
|
|
|
|
+import DetailImgAc from "@/assets/images/icon_home_detail-min-ac.png"
|
|
|
|
+import AuthorImg from "@/assets/images/icon_home_author-min.png"
|
|
|
|
+import AuthorImgAc from "@/assets/images/icon_home_author-min-ac.png"
|
|
|
|
|
|
import { useWindowSize } from "@vueuse/core"
|
|
import { useWindowSize } from "@vueuse/core"
|
|
|
|
|
|
-
|
|
|
|
const store = useStore()
|
|
const store = useStore()
|
|
const router = useRouter()
|
|
const router = useRouter()
|
|
const route = useRoute()
|
|
const route = useRoute()
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
const windowHeightDesign = 1080 - 71 - 37 // 设计稿里视口高度。注意要减去上下边栏
|
|
const windowHeightDesign = 1080 - 71 - 37 // 设计稿里视口高度。注意要减去上下边栏
|
|
const { width: windowWidth, height: windowHeight } = useWindowSize()
|
|
const { width: windowWidth, height: windowHeight } = useWindowSize()
|
|
|
|
|
|
@@ -51,10 +48,9 @@ const isShowVideoFadeToNextPage = ref(false)
|
|
const isShowSkip = ref(false)
|
|
const isShowSkip = ref(false)
|
|
const videoFadeToNextPageEl = ref(null)
|
|
const videoFadeToNextPageEl = ref(null)
|
|
|
|
|
|
-const paintingState = ref('1')
|
|
|
|
|
|
+const paintingState = ref("1")
|
|
const isShowPaintingDetial = ref(false)
|
|
const isShowPaintingDetial = ref(false)
|
|
|
|
|
|
-
|
|
|
|
const longTitleText = computed(() => {
|
|
const longTitleText = computed(() => {
|
|
return curPageIndex.value == 1
|
|
return curPageIndex.value == 1
|
|
? "三竿修竹"
|
|
? "三竿修竹"
|
|
@@ -94,7 +90,7 @@ const goMorePart = () => {
|
|
}
|
|
}
|
|
// 滑动逻辑
|
|
// 滑动逻辑
|
|
const scrollFu = (event, val) => {
|
|
const scrollFu = (event, val) => {
|
|
- console.log('在滚动', val)
|
|
|
|
|
|
+ console.log("在滚动", val)
|
|
if (val == -1) {
|
|
if (val == -1) {
|
|
// 上滚
|
|
// 上滚
|
|
// console.log("上滚")
|
|
// console.log("上滚")
|
|
@@ -112,6 +108,7 @@ const scrollFu = (event, val) => {
|
|
}
|
|
}
|
|
const hoverIndex = ref(null)
|
|
const hoverIndex = ref(null)
|
|
|
|
|
|
|
|
+const clickHotChangePageFormIndex = ref(-1)
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
if (route.query.page) {
|
|
if (route.query.page) {
|
|
@@ -149,7 +146,14 @@ onMounted(() => {
|
|
<div
|
|
<div
|
|
ref="scroller"
|
|
ref="scroller"
|
|
class="scroller"
|
|
class="scroller"
|
|
- @wheel="($event) => handleScrollThrottle($event, ($event) => scrollFu($event,-1),($event) => scrollFu($event,1))"
|
|
|
|
|
|
+ @wheel="
|
|
|
|
+ ($event) =>
|
|
|
|
+ handleScrollThrottle(
|
|
|
|
+ $event,
|
|
|
|
+ ($event) => scrollFu($event, -1),
|
|
|
|
+ ($event) => scrollFu($event, 1)
|
|
|
|
+ )
|
|
|
|
+ "
|
|
>
|
|
>
|
|
<div class="scroller-content" />
|
|
<div class="scroller-content" />
|
|
</div>
|
|
</div>
|
|
@@ -186,6 +190,17 @@ onMounted(() => {
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
+ <BtnBack
|
|
|
|
+ v-show="clickHotChangePageFormIndex != -1 && curPageIndex != 0 && curPageIndex != 4"
|
|
|
|
+ :style="{ zIndex: 10 }"
|
|
|
|
+ @click="
|
|
|
|
+ () => {
|
|
|
|
+ (curPageIndex = clickHotChangePageFormIndex),
|
|
|
|
+ (clickHotChangePageFormIndex = -1);
|
|
|
|
+ }
|
|
|
|
+ "
|
|
|
|
+ />
|
|
|
|
+
|
|
<!-- 作品、作者简介 -->
|
|
<!-- 作品、作者简介 -->
|
|
<div
|
|
<div
|
|
ref="longDesc"
|
|
ref="longDesc"
|
|
@@ -193,6 +208,12 @@ onMounted(() => {
|
|
:class="{ 'long-desc-ac': curPageIndex == 0 || curPageIndex == 4 }"
|
|
:class="{ 'long-desc-ac': curPageIndex == 0 || curPageIndex == 4 }"
|
|
:style="{ opacity: curPageIndex == 0 || curPageIndex == 4 ? 1 : 0 }"
|
|
:style="{ opacity: curPageIndex == 0 || curPageIndex == 4 ? 1 : 0 }"
|
|
>
|
|
>
|
|
|
|
+ <img
|
|
|
|
+ class="more-part-btn"
|
|
|
|
+ src="@/assets/images/home-long-desc-bg.png"
|
|
|
|
+ alt=""
|
|
|
|
+ @click="goMorePart"
|
|
|
|
+ >
|
|
<div
|
|
<div
|
|
class="page2-box"
|
|
class="page2-box"
|
|
@mouseenter="hoverIndex = 1"
|
|
@mouseenter="hoverIndex = 1"
|
|
@@ -201,8 +222,7 @@ onMounted(() => {
|
|
// () => {
|
|
// () => {
|
|
// router.push('/painting-detail?idx=home');
|
|
// router.push('/painting-detail?idx=home');
|
|
// }
|
|
// }
|
|
- isShowPaintingDetial =true,
|
|
|
|
- paintingState = '1'
|
|
|
|
|
|
+ (isShowPaintingDetial = true), (paintingState = '1')
|
|
"
|
|
"
|
|
>
|
|
>
|
|
<img
|
|
<img
|
|
@@ -220,8 +240,7 @@ onMounted(() => {
|
|
// () => {
|
|
// () => {
|
|
// router.push('/painting-detail?idx=home&state=2');
|
|
// router.push('/painting-detail?idx=home&state=2');
|
|
// }
|
|
// }
|
|
- isShowPaintingDetial =true,
|
|
|
|
- paintingState = '2'
|
|
|
|
|
|
+ (isShowPaintingDetial = true), (paintingState = '2')
|
|
"
|
|
"
|
|
>
|
|
>
|
|
<img
|
|
<img
|
|
@@ -230,13 +249,6 @@ onMounted(() => {
|
|
>
|
|
>
|
|
<div>作者简介</div>
|
|
<div>作者简介</div>
|
|
</div>
|
|
</div>
|
|
- <img
|
|
|
|
- v-show="curPageIndex == 0 "
|
|
|
|
- class="more-part-btn"
|
|
|
|
- src="@/assets/images/home-long-desc-bg.png"
|
|
|
|
- alt=""
|
|
|
|
- @click="goMorePart"
|
|
|
|
- >
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- 画作 -->
|
|
<!-- 画作 -->
|
|
@@ -248,7 +260,7 @@ onMounted(() => {
|
|
}"
|
|
}"
|
|
@click="
|
|
@click="
|
|
() => {
|
|
() => {
|
|
- isShowPaintingDetial = true
|
|
|
|
|
|
+ isShowPaintingDetial = true;
|
|
}
|
|
}
|
|
"
|
|
"
|
|
>
|
|
>
|
|
@@ -265,7 +277,7 @@ onMounted(() => {
|
|
draggable="false"
|
|
draggable="false"
|
|
>
|
|
>
|
|
<img
|
|
<img
|
|
- :style="{opacity: curPageIndex == 2 ? 1 : 0}"
|
|
|
|
|
|
+ :style="{ opacity: curPageIndex == 2 ? 1 : 0 }"
|
|
class="painting-stem"
|
|
class="painting-stem"
|
|
src="@/assets/images/home-painting2.jpg"
|
|
src="@/assets/images/home-painting2.jpg"
|
|
alt=""
|
|
alt=""
|
|
@@ -307,15 +319,47 @@ onMounted(() => {
|
|
class="hotspot-wrap"
|
|
class="hotspot-wrap"
|
|
>
|
|
>
|
|
<HotspotForHomepage
|
|
<HotspotForHomepage
|
|
-
|
|
|
|
class="hotspot-1"
|
|
class="hotspot-1"
|
|
|
|
+ :is-left="true"
|
|
@click="isShowHotspotDetail1 = true"
|
|
@click="isShowHotspotDetail1 = true"
|
|
/>
|
|
/>
|
|
<HotspotForHomepage
|
|
<HotspotForHomepage
|
|
-
|
|
|
|
class="hotspot-3"
|
|
class="hotspot-3"
|
|
@click="isShowHotspotDetail3 = true"
|
|
@click="isShowHotspotDetail3 = true"
|
|
/>
|
|
/>
|
|
|
|
+ <!-- 竹叶 -->
|
|
|
|
+ <HotspotForHomepage
|
|
|
|
+ class="hotspot-leaf"
|
|
|
|
+ :opacity="0.6"
|
|
|
|
+ :width="'75%'"
|
|
|
|
+ @click="
|
|
|
|
+ () => {
|
|
|
|
+ (clickHotChangePageFormIndex = curPageIndex), (curPageIndex = 2);
|
|
|
|
+ }
|
|
|
|
+ "
|
|
|
|
+ />
|
|
|
|
+ <!-- 卧石 -->
|
|
|
|
+ <HotspotForHomepage
|
|
|
|
+ class="hotspot-stone"
|
|
|
|
+ :opacity="0.6"
|
|
|
|
+ :width="'75%'"
|
|
|
|
+ @click="
|
|
|
|
+ () => {
|
|
|
|
+ (clickHotChangePageFormIndex = curPageIndex), (curPageIndex = 3);
|
|
|
|
+ }
|
|
|
|
+ "
|
|
|
|
+ />
|
|
|
|
+ <!-- 杆 -->
|
|
|
|
+ <HotspotForHomepage
|
|
|
|
+ class="hotspot-gan"
|
|
|
|
+ :opacity="0.6"
|
|
|
|
+ :width="'75%'"
|
|
|
|
+ @click="
|
|
|
|
+ () => {
|
|
|
|
+ (clickHotChangePageFormIndex = curPageIndex), (curPageIndex = 1);
|
|
|
|
+ }
|
|
|
|
+ "
|
|
|
|
+ />
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- 轴/卷/册热点详情 -->
|
|
<!-- 轴/卷/册热点详情 -->
|
|
@@ -338,10 +382,8 @@ onMounted(() => {
|
|
|
|
|
|
<!-- 滑动提示 -->
|
|
<!-- 滑动提示 -->
|
|
<OperationTip
|
|
<OperationTip
|
|
- v-show="curPageIndex == 0"
|
|
|
|
class="operation-tip"
|
|
class="operation-tip"
|
|
text="向下滑动"
|
|
text="向下滑动"
|
|
- :is-show="isShowOperationTip"
|
|
|
|
/>
|
|
/>
|
|
|
|
|
|
<!-- 画作详情 -->
|
|
<!-- 画作详情 -->
|
|
@@ -364,7 +406,7 @@ onMounted(() => {
|
|
curPageIndex == 4
|
|
curPageIndex == 4
|
|
? 1
|
|
? 1
|
|
: 0,
|
|
: 0,
|
|
- left: curPageIndex == 4 ? '4%':''
|
|
|
|
|
|
+ left: curPageIndex == 4 ? '4%' : '',
|
|
}"
|
|
}"
|
|
>
|
|
>
|
|
<div class="text-box-title">
|
|
<div class="text-box-title">
|
|
@@ -452,10 +494,14 @@ onMounted(() => {
|
|
font-family: KaiTi;
|
|
font-family: KaiTi;
|
|
font-weight: 400;
|
|
font-weight: 400;
|
|
// font-size: 20px;
|
|
// font-size: 20px;
|
|
- font-size: calc(20px / v-bind('windowHeightDesign') * v-bind('windowHeight'));
|
|
|
|
|
|
+ font-size: calc(
|
|
|
|
+ 20px / v-bind("windowHeightDesign") * v-bind("windowHeight")
|
|
|
|
+ );
|
|
color: #ffffff;
|
|
color: #ffffff;
|
|
// line-height: 30px;
|
|
// line-height: 30px;
|
|
- line-height: calc(30px / v-bind('windowHeightDesign') * v-bind('windowHeight'));
|
|
|
|
|
|
+ line-height: calc(
|
|
|
|
+ 30px / v-bind("windowHeightDesign") * v-bind("windowHeight")
|
|
|
|
+ );
|
|
white-space: pre;
|
|
white-space: pre;
|
|
letter-spacing: 0.2em;
|
|
letter-spacing: 0.2em;
|
|
text-align: center;
|
|
text-align: center;
|
|
@@ -463,8 +509,8 @@ onMounted(() => {
|
|
}
|
|
}
|
|
> .long-desc {
|
|
> .long-desc {
|
|
position: absolute;
|
|
position: absolute;
|
|
- bottom: calc(30px / v-bind('windowHeightDesign') * v-bind('windowHeight'));
|
|
|
|
- right: calc(30px / v-bind('windowHeightDesign') * v-bind('windowHeight'));
|
|
|
|
|
|
+ bottom: calc(30px / v-bind("windowHeightDesign") * v-bind("windowHeight"));
|
|
|
|
+ right: calc(30px / v-bind("windowHeightDesign") * v-bind("windowHeight"));
|
|
color: white;
|
|
color: white;
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
font-family: KaiTi;
|
|
font-family: KaiTi;
|
|
@@ -476,9 +522,11 @@ onMounted(() => {
|
|
align-items: center;
|
|
align-items: center;
|
|
z-index: 10;
|
|
z-index: 10;
|
|
transition: opacity 1.5s ease;
|
|
transition: opacity 1.5s ease;
|
|
- >.more-part-btn{
|
|
|
|
- width: calc(67px / v-bind('windowHeightDesign') * v-bind('windowHeight'));
|
|
|
|
- margin-top: calc(20px / v-bind('windowHeightDesign') * v-bind('windowHeight'));
|
|
|
|
|
|
+ > .more-part-btn {
|
|
|
|
+ width: calc(67px / v-bind("windowHeightDesign") * v-bind("windowHeight"));
|
|
|
|
+ margin-bottom: calc(
|
|
|
|
+ 20px / v-bind("windowHeightDesign") * v-bind("windowHeight")
|
|
|
|
+ );
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -490,12 +538,16 @@ onMounted(() => {
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
|
|
|
|
> img {
|
|
> img {
|
|
- width: calc(55px / v-bind('windowHeightDesign') * v-bind('windowHeight'));
|
|
|
|
|
|
+ width: calc(
|
|
|
|
+ 55px / v-bind("windowHeightDesign") * v-bind("windowHeight")
|
|
|
|
+ );
|
|
margin-bottom: 10px;
|
|
margin-bottom: 10px;
|
|
}
|
|
}
|
|
|
|
|
|
> div {
|
|
> div {
|
|
- font-size: calc(20px / v-bind('windowHeightDesign') * v-bind('windowHeight'));
|
|
|
|
|
|
+ font-size: calc(
|
|
|
|
+ 20px / v-bind("windowHeightDesign") * v-bind("windowHeight")
|
|
|
|
+ );
|
|
font-family: KaiTi;
|
|
font-family: KaiTi;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -569,6 +621,26 @@ onMounted(() => {
|
|
right: 0;
|
|
right: 0;
|
|
pointer-events: initial;
|
|
pointer-events: initial;
|
|
}
|
|
}
|
|
|
|
+ > .hotspot-leaf {
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: 51vh;
|
|
|
|
+ right: 28vh;
|
|
|
|
+ pointer-events: initial;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ > .hotspot-stone {
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: 69vh;
|
|
|
|
+ right: 35vh;
|
|
|
|
+ pointer-events: initial;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ > .hotspot-gan {
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: 30vh;
|
|
|
|
+ right: 15vh;
|
|
|
|
+ pointer-events: initial;
|
|
|
|
+ }
|
|
|
|
|
|
// > .hotspot-2 {
|
|
// > .hotspot-2 {
|
|
// position: absolute;
|
|
// position: absolute;
|
|
@@ -590,42 +662,56 @@ onMounted(() => {
|
|
|
|
|
|
> .operation-tip {
|
|
> .operation-tip {
|
|
position: absolute;
|
|
position: absolute;
|
|
- right: calc(30px / v-bind('windowHeightDesign') * v-bind('windowHeight'));
|
|
|
|
|
|
+ right: calc(30px / v-bind("windowHeightDesign") * v-bind("windowHeight"));
|
|
transform: translateX(-50%);
|
|
transform: translateX(-50%);
|
|
top: 50%;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
transform: translateY(-50%);
|
|
|
|
+ z-index: 10;
|
|
}
|
|
}
|
|
- >.painting-detail{
|
|
|
|
|
|
+ > .painting-detail {
|
|
width: 100%;
|
|
width: 100%;
|
|
height: 100%;
|
|
height: 100%;
|
|
position: absolute;
|
|
position: absolute;
|
|
top: 0;
|
|
top: 0;
|
|
left: 0;
|
|
left: 0;
|
|
z-index: 30;
|
|
z-index: 30;
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
> .text-box {
|
|
> .text-box {
|
|
- max-width: calc(450px / v-bind('windowHeightDesign') * v-bind('windowHeight'));
|
|
|
|
|
|
+ max-width: calc(
|
|
|
|
+ 450px / v-bind("windowHeightDesign") * v-bind("windowHeight")
|
|
|
|
+ );
|
|
position: absolute;
|
|
position: absolute;
|
|
top: 50%;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
transform: translateY(-50%);
|
|
left: 10%;
|
|
left: 10%;
|
|
color: #ffffff;
|
|
color: #ffffff;
|
|
- font-size: calc(25px / v-bind('windowHeightDesign') * v-bind('windowHeight'));
|
|
|
|
- line-height: calc(38px / v-bind('windowHeightDesign') * v-bind('windowHeight'));
|
|
|
|
|
|
+ font-size: calc(
|
|
|
|
+ 25px / v-bind("windowHeightDesign") * v-bind("windowHeight")
|
|
|
|
+ );
|
|
|
|
+ line-height: calc(
|
|
|
|
+ 38px / v-bind("windowHeightDesign") * v-bind("windowHeight")
|
|
|
|
+ );
|
|
font-family: "KaiTi";
|
|
font-family: "KaiTi";
|
|
transition: opacity 1.5s ease;
|
|
transition: opacity 1.5s ease;
|
|
z-index: 10;
|
|
z-index: 10;
|
|
transition: left 1.5s ease;
|
|
transition: left 1.5s ease;
|
|
.text-box-title {
|
|
.text-box-title {
|
|
- font-size: calc(42px / v-bind('windowHeightDesign') * v-bind('windowHeight'));
|
|
|
|
- line-height: calc(48px / v-bind('windowHeightDesign') * v-bind('windowHeight'));
|
|
|
|
- margin-bottom: calc(30px / v-bind('windowHeightDesign') * v-bind('windowHeight'));
|
|
|
|
|
|
+ font-size: calc(
|
|
|
|
+ 42px / v-bind("windowHeightDesign") * v-bind("windowHeight")
|
|
|
|
+ );
|
|
|
|
+ line-height: calc(
|
|
|
|
+ 48px / v-bind("windowHeightDesign") * v-bind("windowHeight")
|
|
|
|
+ );
|
|
|
|
+ margin-bottom: calc(
|
|
|
|
+ 30px / v-bind("windowHeightDesign") * v-bind("windowHeight")
|
|
|
|
+ );
|
|
}
|
|
}
|
|
- .text-box-desc{
|
|
|
|
|
|
+ .text-box-desc {
|
|
text-indent: 2em;
|
|
text-indent: 2em;
|
|
- max-width: calc(550px / v-bind('windowHeightDesign') * v-bind('windowHeight'));
|
|
|
|
|
|
+ max-width: calc(
|
|
|
|
+ 550px / v-bind("windowHeightDesign") * v-bind("windowHeight")
|
|
|
|
+ );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|