|
@@ -31,12 +31,13 @@
|
|
<!-- 画作 -->
|
|
<!-- 画作 -->
|
|
<div
|
|
<div
|
|
class="painting-wrap"
|
|
class="painting-wrap"
|
|
|
|
+ :class="{last:summaryOpacity > 0}"
|
|
:style="{
|
|
:style="{
|
|
top: summaryOpacity > 0 ? `${90 / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px` : `${paintingTop / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px`,
|
|
top: summaryOpacity > 0 ? `${90 / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px` : `${paintingTop / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px`,
|
|
width: summaryOpacity > 0 ? `calc(225 / 308 * 100%)` : paintingWidth == 485 ? `110%` : `${paintingWidth / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px`,
|
|
width: summaryOpacity > 0 ? `calc(225 / 308 * 100%)` : paintingWidth == 485 ? `110%` : `${paintingWidth / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px`,
|
|
height: summaryOpacity > 0 ? `${523 / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px` : `${paintingHeight / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px`,
|
|
height: summaryOpacity > 0 ? `${523 / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px` : `${paintingHeight / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px`,
|
|
- transform: `${currentPosition}`,
|
|
|
|
- transition: currentPosition != '' ? `all 1.5s` : ``
|
|
|
|
|
|
+ transform: `${currentPosition != '' ? currentPosition : `translate(-50%, 0)`}`,
|
|
|
|
+ transition: currentPosition != '' ? `all 1s` : ``
|
|
}"
|
|
}"
|
|
>
|
|
>
|
|
<div
|
|
<div
|
|
@@ -312,21 +313,41 @@
|
|
<!-- 文字介绍 -->
|
|
<!-- 文字介绍 -->
|
|
<div
|
|
<div
|
|
ref="longDesc"
|
|
ref="longDesc"
|
|
- v-touch:swipe.left="onSwipeLeft"
|
|
|
|
- v-touch:swipe.right="onSwipeRight"
|
|
|
|
class="long-desc"
|
|
class="long-desc"
|
|
:style="{
|
|
:style="{
|
|
- top: `${(paintingTop + paintingHeight + 53) / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px`,
|
|
|
|
|
|
+ top: `${(paintingTop + paintingHeight + 60) / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px`,
|
|
opacity: longDescOpacity,
|
|
opacity: longDescOpacity,
|
|
}"
|
|
}"
|
|
|
|
+ @touchstart="handletouchstart($event)"
|
|
|
|
+ @touchend="touchEnd($event)"
|
|
>
|
|
>
|
|
|
|
+ <div
|
|
|
|
+ class="page2-box"
|
|
|
|
+ @click="isShowPaintingDesc = true"
|
|
|
|
+ >
|
|
|
|
+ <img
|
|
|
|
+ src="@/assets/images/icon_home_detail-min.png"
|
|
|
|
+ alt=""
|
|
|
|
+ >
|
|
|
|
+ <div>作品简介</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div
|
|
|
|
+ class="page2-box"
|
|
|
|
+ @click="isShowAuthorDesc = true"
|
|
|
|
+ >
|
|
|
|
+ <img
|
|
|
|
+ src="@/assets/images/icon_home_author-min.png"
|
|
|
|
+ alt=""
|
|
|
|
+ >
|
|
|
|
+ <div>作者简介</div>
|
|
|
|
+ </div>
|
|
<!-- <h3>作品简介:</h3> -->
|
|
<!-- <h3>作品简介:</h3> -->
|
|
- <p
|
|
|
|
|
|
+ <!-- <p
|
|
v-for="(item, index) in homepagePaintingDesc"
|
|
v-for="(item, index) in homepagePaintingDesc"
|
|
:key="index"
|
|
:key="index"
|
|
>
|
|
>
|
|
{{ item }}
|
|
{{ item }}
|
|
- </p>
|
|
|
|
|
|
+ </p> -->
|
|
<!-- <h3>作者简介:</h3>
|
|
<!-- <h3>作者简介:</h3>
|
|
<p
|
|
<p
|
|
v-for="(item, index) in homepageAuthorDesc"
|
|
v-for="(item, index) in homepageAuthorDesc"
|
|
@@ -337,42 +358,111 @@
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- 展开作者简介 -->
|
|
<!-- 展开作者简介 -->
|
|
-
|
|
|
|
- <div
|
|
|
|
|
|
+ <!-- <div
|
|
class="up-icon"
|
|
class="up-icon"
|
|
:style="{
|
|
:style="{
|
|
- top: `${(paintingTop + paintingHeight + 300) / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px`,
|
|
|
|
|
|
+ top: `${(paintingTop + paintingHeight + 315) / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px`,
|
|
opacity: longDescOpacity,
|
|
opacity: longDescOpacity,
|
|
}"
|
|
}"
|
|
@click="isShowAuthorDesc = true"
|
|
@click="isShowAuthorDesc = true"
|
|
>
|
|
>
|
|
<img src="@/assets/images/icon_up.png">
|
|
<img src="@/assets/images/icon_up.png">
|
|
- </div>
|
|
|
|
|
|
+ </div> -->
|
|
|
|
+ <!-- 作品简介 -->
|
|
<div
|
|
<div
|
|
- v-show="isShowAuthorDesc"
|
|
|
|
- class="author-box"
|
|
|
|
|
|
+ v-show="isShowPaintingDesc"
|
|
|
|
+ class="painting-box"
|
|
>
|
|
>
|
|
|
|
+ <!-- 顶部画作 -->
|
|
<img
|
|
<img
|
|
- class="top-icon"
|
|
|
|
- src="@/assets/images/img_author.png"
|
|
|
|
|
|
+ class="painting-img"
|
|
|
|
+ src="@/assets/images/img_painting-box.png"
|
|
alt=""
|
|
alt=""
|
|
>
|
|
>
|
|
- <div class="author-desc">
|
|
|
|
|
|
+ <div
|
|
|
|
+ class="text-box"
|
|
|
|
+ >
|
|
<p
|
|
<p
|
|
- v-for="(item, index) in homepageAuthorDesc"
|
|
|
|
|
|
+ v-for="(item,index) in homepagePaintingDesc"
|
|
:key="index"
|
|
:key="index"
|
|
>
|
|
>
|
|
{{ item }}
|
|
{{ item }}
|
|
</p>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
+ <!-- <div class="bottom-box" /> -->
|
|
|
|
+ <img
|
|
|
|
+ class="back-btn"
|
|
|
|
+ src="@/assets/images/icon_back_white.png"
|
|
|
|
+ alt=""
|
|
|
|
+ @click="isShowPaintingDesc = false"
|
|
|
|
+ >
|
|
|
|
+ <!-- <BtnBack
|
|
|
|
+ class="system-btns"
|
|
|
|
+ @click="isShowPaintingDesc = false"
|
|
|
|
+ /> -->
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <!-- 作者简介 -->
|
|
|
|
+ <div
|
|
|
|
+ v-show="isShowAuthorDesc"
|
|
|
|
+ class="author-box"
|
|
|
|
+ >
|
|
|
|
+ <div class="author-content">
|
|
|
|
+ <img
|
|
|
|
+ class="author-img"
|
|
|
|
+ src="@/assets/images/img_author-min.png"
|
|
|
|
+ >
|
|
|
|
+ <img
|
|
|
|
+ class="author-name"
|
|
|
|
+ src="@/assets/images/text_likan-min.png"
|
|
|
|
+ >
|
|
|
|
+
|
|
|
|
+ <div class="line" />
|
|
|
|
+ <div class="text-box">
|
|
|
|
+ <p
|
|
|
|
+ v-for="(item, index) in homepageAuthorDesc"
|
|
|
|
+ :key="index"
|
|
|
|
+ >
|
|
|
|
+ {{ item }}
|
|
|
|
+ </p>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 底部遮罩 -->
|
|
|
|
+ <!-- <div class="bottom-box" /> -->
|
|
<img
|
|
<img
|
|
- class="down-icon"
|
|
|
|
- src="@/assets/images/icon_down.png"
|
|
|
|
|
|
+ style="position: absolute;
|
|
|
|
+ bottom: 30px;
|
|
|
|
+ left: 20px;
|
|
|
|
+ width: 25px;"
|
|
|
|
+ src="@/assets/images/icon_back_white.png"
|
|
|
|
+ alt=""
|
|
@click="isShowAuthorDesc = false"
|
|
@click="isShowAuthorDesc = false"
|
|
>
|
|
>
|
|
|
|
+ <!-- <BtnBack
|
|
|
|
+ class="system-btns"
|
|
|
|
+ @click="isShowAuthorDesc = false"
|
|
|
|
+ /> -->
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
+ <!-- 竹杆提示 -->
|
|
|
|
+ <OperationTip
|
|
|
|
+ v-if="stemOpacity > 0"
|
|
|
|
+ class="stem-operation-h"
|
|
|
|
+ direction="h"
|
|
|
|
+ />
|
|
|
|
+ <!-- 竹叶提示 -->
|
|
|
|
+ <OperationTip
|
|
|
|
+ v-if="leafOpacity > 0"
|
|
|
|
+ class="leaf-operation-h"
|
|
|
|
+ direction="h"
|
|
|
|
+ />
|
|
|
|
|
|
|
|
+ <!-- 石头提示 -->
|
|
|
|
+ <OperationTip
|
|
|
|
+ v-if="stoneOpacity > 0"
|
|
|
|
+ class="stone-operation-h"
|
|
|
|
+ direction="h"
|
|
|
|
+ />
|
|
|
|
|
|
<!-- stem title -->
|
|
<!-- stem title -->
|
|
<!-- 上面 -->
|
|
<!-- 上面 -->
|
|
@@ -380,7 +470,7 @@
|
|
class="fixed-desc detail-title-stem"
|
|
class="fixed-desc detail-title-stem"
|
|
:style="{
|
|
:style="{
|
|
top: `${paintingTop + 750 / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px`,
|
|
top: `${paintingTop + 750 / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px`,
|
|
- opacity:stemOpacity ,
|
|
|
|
|
|
+ opacity: stemOpacity,
|
|
}"
|
|
}"
|
|
>
|
|
>
|
|
三竿修竹
|
|
三竿修竹
|
|
@@ -418,16 +508,16 @@
|
|
<div
|
|
<div
|
|
class="fixed-desc detail-desc-stem"
|
|
class="fixed-desc detail-desc-stem"
|
|
:style="{
|
|
:style="{
|
|
- top: `${(paintingTop + 750) / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px`,
|
|
|
|
|
|
+ top: `${(paintingTop + 725) / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px`,
|
|
opacity: stemGreenOpacity,
|
|
opacity: stemGreenOpacity,
|
|
|
|
|
|
}"
|
|
}"
|
|
- v-html="stemOpacity1 > 0 ? detailDescStem1 : detailDescStem2 "
|
|
|
|
|
|
+ v-html="stemOpacity1 > 0 ? detailDescStem1 : detailDescStem2"
|
|
/>
|
|
/>
|
|
<div
|
|
<div
|
|
class="fixed-desc detail-desc-leaf"
|
|
class="fixed-desc detail-desc-leaf"
|
|
:style="{
|
|
:style="{
|
|
- top: `${(paintingTop + 750) / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px`,
|
|
|
|
|
|
+ top: `${(paintingTop + 725) / windowSizeWhenDesignForRef * windowSizeInCssForRef.substring(0, windowSizeInCssForRef.length - 2)}px`,
|
|
opacity: leafGreenOpacity,
|
|
opacity: leafGreenOpacity,
|
|
zIndex: 4,
|
|
zIndex: 4,
|
|
}"
|
|
}"
|
|
@@ -451,42 +541,21 @@
|
|
{{ summaryDesc }}
|
|
{{ summaryDesc }}
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <div class="progress-bar">
|
|
|
|
|
|
+ <!-- <div class="progress-bar">
|
|
<div
|
|
<div
|
|
class="bar-artwork-desc"
|
|
class="bar-artwork-desc"
|
|
:style="{
|
|
:style="{
|
|
width: `${scrollerElScrollTop / summaryHideAt * 100}%`,
|
|
width: `${scrollerElScrollTop / summaryHideAt * 100}%`,
|
|
}"
|
|
}"
|
|
/>
|
|
/>
|
|
- <!-- <img
|
|
|
|
- class="progress-bar-node-1"
|
|
|
|
- src="@/assets/images/progress-bar-node-1.png"
|
|
|
|
- v-show="scrollerElScrollTop / summaryHideAt > 0.10"
|
|
|
|
- alt=""
|
|
|
|
- draggable="false"
|
|
|
|
- > -->
|
|
|
|
- <!-- <div class="bar-author-desc" /> -->
|
|
|
|
- <!-- <img
|
|
|
|
- class="progress-bar-node-2"
|
|
|
|
- src="@/assets/images/progress-bar-node-2.png"
|
|
|
|
- alt=""
|
|
|
|
- draggable="false"
|
|
|
|
- >
|
|
|
|
- <img
|
|
|
|
- class="progress-bar-node-3"
|
|
|
|
- src="@/assets/images/progress-bar-node-3.png"
|
|
|
|
- alt=""
|
|
|
|
- draggable="false"
|
|
|
|
- > -->
|
|
|
|
-
|
|
|
|
- <!-- <div
|
|
|
|
- class="mask"
|
|
|
|
- :style="{
|
|
|
|
- width: `${(1 - scrollerElScrollTop / summaryHideAt) * 100}%`,
|
|
|
|
- backgroundColor:stemGreenOpacity > 0 || leafGreenOpacity > 0 || stoneGreenOpacity > 0?'rgba(85,116,83,0.8)':''
|
|
|
|
- }"
|
|
|
|
- /> -->
|
|
|
|
- </div>
|
|
|
|
|
|
+ </div> -->
|
|
|
|
+ <ProgressBar
|
|
|
|
+ :style="{ opacity: curStep != 0 ? 1: 0}"
|
|
|
|
+ class="progress-bar"
|
|
|
|
+ :totle-unit="5"
|
|
|
|
+ :cur-percentage="curPercentage"
|
|
|
|
+ @go-to-slide="goToSlide"
|
|
|
|
+ />
|
|
<OperationTip
|
|
<OperationTip
|
|
v-if="isStartupOver"
|
|
v-if="isStartupOver"
|
|
class="operation-tip"
|
|
class="operation-tip"
|
|
@@ -495,6 +564,13 @@
|
|
:is-show="isShowOperationTip"
|
|
:is-show="isShowOperationTip"
|
|
/>
|
|
/>
|
|
|
|
|
|
|
|
+ <OperationTip
|
|
|
|
+ v-if="isBackFormOther"
|
|
|
|
+ class="operation-tip"
|
|
|
|
+ text="向左划动"
|
|
|
|
+ direction="h"
|
|
|
|
+ />
|
|
|
|
+
|
|
<div
|
|
<div
|
|
ref="scrollerEl"
|
|
ref="scrollerEl"
|
|
class="scroller"
|
|
class="scroller"
|
|
@@ -600,6 +676,9 @@ const {
|
|
} = useSizeAdapt()
|
|
} = useSizeAdapt()
|
|
|
|
|
|
const isShowAuthorDesc = ref(false)
|
|
const isShowAuthorDesc = ref(false)
|
|
|
|
+const isShowPaintingDesc = ref(false)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -618,10 +697,14 @@ const scrollerEl = ref(null)
|
|
const scrollerElScrollTop = ref(0)
|
|
const scrollerElScrollTop = ref(0)
|
|
function onScroll() {
|
|
function onScroll() {
|
|
scrollerElScrollTop.value = scrollerEl.value.scrollTop
|
|
scrollerElScrollTop.value = scrollerEl.value.scrollTop
|
|
- console.log('当前滚动比例', scrollerElScrollTop.value / summaryHideAt, scrollerEl.value.scrollTop / scrollerEl.value.scrollHeight)
|
|
|
|
|
|
+ // console.log('当前滚动比例', scrollerElScrollTop.value / summaryHideAt, scrollerEl.value.scrollTop / scrollerEl.value.scrollHeight)
|
|
}
|
|
}
|
|
|
|
+const isBackFormOther = ref(false)
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
scrollerEl.value.addEventListener('scroll', onScroll)
|
|
scrollerEl.value.addEventListener('scroll', onScroll)
|
|
|
|
+ if (window.location.href.includes('?back=1')) {
|
|
|
|
+ isBackFormOther.value = true
|
|
|
|
+ }
|
|
})
|
|
})
|
|
onBeforeUnmount(() => {
|
|
onBeforeUnmount(() => {
|
|
scrollerEl.value.removeEventListener('scroll', onScroll)
|
|
scrollerEl.value.removeEventListener('scroll', onScroll)
|
|
@@ -685,27 +768,32 @@ const paintingTop = computed(() => {
|
|
|
|
|
|
|
|
|
|
const paintingWidthInitial = 308
|
|
const paintingWidthInitial = 308
|
|
-const paintingWidthMovedUp = 250
|
|
|
|
|
|
+const paintingWidthMovedUp = 300
|
|
const paintingWidthMovedDown = 485
|
|
const paintingWidthMovedDown = 485
|
|
const paintingWidth = computed(() => {
|
|
const paintingWidth = computed(() => {
|
|
let ret = null
|
|
let ret = null
|
|
if (scrollerElScrollTop.value <= paintingMoveUpAt) {
|
|
if (scrollerElScrollTop.value <= paintingMoveUpAt) {
|
|
ret = paintingWidthInitial
|
|
ret = paintingWidthInitial
|
|
|
|
+ console.log(1, ret)
|
|
} else if (scrollerElScrollTop.value > paintingMoveUpAt && scrollerElScrollTop.value <= paintingMoveUpFinishAt) {
|
|
} else if (scrollerElScrollTop.value > paintingMoveUpAt && scrollerElScrollTop.value <= paintingMoveUpFinishAt) {
|
|
ret = (scrollerElScrollTop.value - paintingMoveUpAt) / (paintingMoveUpFinishAt - paintingMoveUpAt) * (paintingWidthMovedUp - paintingWidthInitial) + paintingWidthInitial
|
|
ret = (scrollerElScrollTop.value - paintingMoveUpAt) / (paintingMoveUpFinishAt - paintingMoveUpAt) * (paintingWidthMovedUp - paintingWidthInitial) + paintingWidthInitial
|
|
|
|
+ console.log(2, ret)
|
|
} else if (scrollerElScrollTop.value > paintingMoveUpFinishAt && scrollerElScrollTop.value <= paintingMoveDownAt) {
|
|
} else if (scrollerElScrollTop.value > paintingMoveUpFinishAt && scrollerElScrollTop.value <= paintingMoveDownAt) {
|
|
ret = paintingWidthMovedUp
|
|
ret = paintingWidthMovedUp
|
|
|
|
+ console.log(3, ret)
|
|
} else if (scrollerElScrollTop.value > paintingMoveDownAt && scrollerElScrollTop.value <= paintingMoveDownFinishAt) {
|
|
} else if (scrollerElScrollTop.value > paintingMoveDownAt && scrollerElScrollTop.value <= paintingMoveDownFinishAt) {
|
|
ret = (scrollerElScrollTop.value - paintingMoveDownAt) / (paintingMoveDownFinishAt - paintingMoveDownAt) * (paintingWidthMovedDown - paintingWidthMovedUp) + paintingWidthMovedUp
|
|
ret = (scrollerElScrollTop.value - paintingMoveDownAt) / (paintingMoveDownFinishAt - paintingMoveDownAt) * (paintingWidthMovedDown - paintingWidthMovedUp) + paintingWidthMovedUp
|
|
|
|
+ console.log(4, ret)
|
|
} else {
|
|
} else {
|
|
ret = paintingWidthMovedDown
|
|
ret = paintingWidthMovedDown
|
|
|
|
+ console.log(5, ret)
|
|
}
|
|
}
|
|
return ret
|
|
return ret
|
|
})
|
|
})
|
|
|
|
|
|
|
|
|
|
const paintingHeightInitial = 523
|
|
const paintingHeightInitial = 523
|
|
-const paintingHeightMovedUp = 425
|
|
|
|
|
|
+const paintingHeightMovedUp = 495
|
|
let paintingHeightMovedDown = 758
|
|
let paintingHeightMovedDown = 758
|
|
|
|
|
|
const paintingHeight = computed(() => {
|
|
const paintingHeight = computed(() => {
|
|
@@ -1133,13 +1221,7 @@ const currentPosition = computed(() => {
|
|
if (stoneOpacity3.value > 0) {
|
|
if (stoneOpacity3.value > 0) {
|
|
return `translate(-25%, -6%) scale(2.2)`
|
|
return `translate(-25%, -6%) scale(2.2)`
|
|
}
|
|
}
|
|
- // if (leafOpacity.value > 0 || leafOpacity1.value > 0 || leafOpacity2.value > 0 || leafOpacity3.value > 0) {
|
|
|
|
- // return `translate(-57%, -40%) scale(3.7)`
|
|
|
|
- // }
|
|
|
|
- // if (stoneOpacity3.value > 0 || stoneOpacity2.value > 0 || stoneOpacity1.value > 0 || stoneOpacity.value > 0) {
|
|
|
|
- // return `translate(-57%, -40%) scale(4.65)`
|
|
|
|
- // }
|
|
|
|
- return ''
|
|
|
|
|
|
+ return `translate(-50%, 0)`
|
|
})
|
|
})
|
|
|
|
|
|
|
|
|
|
@@ -1260,8 +1342,48 @@ const curStep = ref(0)
|
|
|
|
|
|
const scrollerPositionList = [0, 0.078, 0.166, 0.228, 0.290, 0.353, 0.436, 0.509, 0.561, 0.644, 0.706, 0.769, 0.831, 1]
|
|
const scrollerPositionList = [0, 0.078, 0.166, 0.228, 0.290, 0.353, 0.436, 0.509, 0.561, 0.644, 0.706, 0.769, 0.831, 1]
|
|
const scrollerPositionTimeRight = [500, 300, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000]
|
|
const scrollerPositionTimeRight = [500, 300, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000]
|
|
-const scrollerPositionTimeLeft = [500, 300, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000]
|
|
|
|
|
|
+const scrollerPositionTimeLeft = [500, 300, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 300]
|
|
|
|
+
|
|
|
|
+// 进度条跳转
|
|
|
|
+const goToSlide = (index) => {
|
|
|
|
+ let step = 0
|
|
|
|
+ switch (index) {
|
|
|
|
+ case 0:
|
|
|
|
+ step = 0
|
|
|
|
+ break
|
|
|
|
+ case 1:
|
|
|
|
+ step = 2
|
|
|
|
+ break
|
|
|
|
+ case 2:
|
|
|
|
+ step = 5
|
|
|
|
+ break
|
|
|
|
+ case 3:
|
|
|
|
+ step = 9
|
|
|
|
+ break
|
|
|
|
+ case 4:
|
|
|
|
+ step = 13
|
|
|
|
+ break
|
|
|
|
+ }
|
|
|
|
+ curStep.value = step
|
|
|
|
+ const pp = scrollerPositionList[curStep.value]
|
|
|
|
+ const startTime = performance.now()
|
|
|
|
+ requestAnimationFrame(() => { smoothScrollTo(scrollerEl.value, pp * scrollerEl.value.scrollHeight, scrollerPositionTimeRight[curStep.value], startTime) })
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
|
|
|
|
+// 进度条百分比
|
|
|
|
+const curPercentage = computed(() => {
|
|
|
|
+ if (curStep.value == scrollerPositionList.length - 1) {
|
|
|
|
+ return 100
|
|
|
|
+ } else if (curStep.value == 2) {
|
|
|
|
+ return 20
|
|
|
|
+ } else if (curStep.value == 5) {
|
|
|
|
+ return 40
|
|
|
|
+ } else if (curStep.value == 9) {
|
|
|
|
+ return 60
|
|
|
|
+ }
|
|
|
|
+ return Number.parseInt(curStep.value / scrollerPositionList.length * 100)
|
|
|
|
+})
|
|
|
|
|
|
const onSwipeLeft = () => {
|
|
const onSwipeLeft = () => {
|
|
if (curStep.value < scrollerPositionList.length - 1) {
|
|
if (curStep.value < scrollerPositionList.length - 1) {
|
|
@@ -1395,6 +1517,7 @@ function onClickGoNextPage() {
|
|
left: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, 0);
|
|
transform: translate(-50%, 0);
|
|
z-index: 1;
|
|
z-index: 1;
|
|
|
|
+ transform-origin: center;
|
|
|
|
|
|
>.green-box {
|
|
>.green-box {
|
|
width: 200vw;
|
|
width: 200vw;
|
|
@@ -1481,7 +1604,10 @@ function onClickGoNextPage() {
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ >.last{
|
|
|
|
+ left: calc(100% - ((225 / 308 * 100vw) * 2.35 ) / 2);
|
|
|
|
+ transform:scale(1) !important;
|
|
|
|
+ }
|
|
>.hotspot-wrap {
|
|
>.hotspot-wrap {
|
|
position: absolute;
|
|
position: absolute;
|
|
left: 50%;
|
|
left: 50%;
|
|
@@ -1558,7 +1684,7 @@ function onClickGoNextPage() {
|
|
>.long-desc {
|
|
>.long-desc {
|
|
position: absolute;
|
|
position: absolute;
|
|
left: 50%;
|
|
left: 50%;
|
|
- bottom: calc(50 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
|
+ bottom: calc(100 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
width: calc(309 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
width: calc(309 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
transform: translate(-50%, 0);
|
|
transform: translate(-50%, 0);
|
|
color: white;
|
|
color: white;
|
|
@@ -1566,6 +1692,26 @@ function onClickGoNextPage() {
|
|
font-family: KaiTi, KaiTi;
|
|
font-family: KaiTi, KaiTi;
|
|
color: #FFFFFF;
|
|
color: #FFFFFF;
|
|
animation: none;
|
|
animation: none;
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ z-index: 12;
|
|
|
|
+
|
|
|
|
+ >.page2-box {
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ align-items: center;
|
|
|
|
+
|
|
|
|
+ >img {
|
|
|
|
+ width: 45%;
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ >div {
|
|
|
|
+ font-size: calc(20 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
+ font-family: KaiTi, KaiTi;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
>h3 {
|
|
>h3 {
|
|
@@ -1594,50 +1740,163 @@ function onClickGoNextPage() {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- >.author-box {
|
|
|
|
|
|
+ >.painting-box {
|
|
width: 100%;
|
|
width: 100%;
|
|
height: 100%;
|
|
height: 100%;
|
|
- background: rgba(85, 116, 83, 0.8);
|
|
|
|
|
|
+ background: rgba(73, 91, 71, 0.7);
|
|
|
|
+ backdrop-filter: blur(22.5px);
|
|
position: fixed;
|
|
position: fixed;
|
|
top: 0;
|
|
top: 0;
|
|
left: 0;
|
|
left: 0;
|
|
- padding: 0 10%;
|
|
|
|
- z-index: 12;
|
|
|
|
display: flex;
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex-direction: column;
|
|
- justify-content: center;
|
|
|
|
|
|
+ // align-content: center;
|
|
align-items: center;
|
|
align-items: center;
|
|
|
|
+ // justify-content: center;
|
|
|
|
+ z-index: 15;
|
|
|
|
+ padding-top: 15%;
|
|
|
|
+ padding-left: 10%;
|
|
|
|
+ padding-right: 10%;
|
|
|
|
+
|
|
|
|
+ >.back-btn{
|
|
|
|
+ width: 25px;
|
|
|
|
+ left: 20px;
|
|
|
|
+ bottom: 30px;
|
|
|
|
+ position: absolute;
|
|
|
|
+ }
|
|
|
|
+ >.painting-img{
|
|
|
|
+ width: 70%;
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
+ }
|
|
|
|
|
|
- >.top-icon {
|
|
|
|
- width: calc(90 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
- height: calc(90 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
|
+ >.text-box {
|
|
|
|
+ width: 100%;
|
|
|
|
+ overflow: auto;
|
|
|
|
+
|
|
|
|
+ >p {
|
|
|
|
+ text-indent: 2em;
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
+ color: #FFFFFF;
|
|
|
|
+ font-size: calc(24 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
+ line-height: calc(30 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
+ font-family: KaiTi, KaiTi;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ >.bottom-box{
|
|
|
|
+ width: 100%;
|
|
|
|
+ min-height: 10vh;
|
|
|
|
+ background: linear-gradient( 0deg, rgba(73, 91, 71, 0.7) 0%, rgba(115,115,115,0) 100%);
|
|
position: absolute;
|
|
position: absolute;
|
|
- top: 10%;
|
|
|
|
- transform: translateX(-50%);
|
|
|
|
- left: 50%;
|
|
|
|
- margin-bottom: calc(45 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
|
+ bottom: 0;
|
|
|
|
+ left: 0;
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ >.system-btns {
|
|
|
|
+ width: 30px;
|
|
|
|
+ height: 30px;
|
|
|
|
+ padding: 0 calc(20 / v-bind(windowSizeWhenDesignForRef) * v-bind(windowSizeInCssForRef));
|
|
|
|
+ position: fixed;
|
|
|
|
+ left: calc(30 /v-bind(windowSizeWhenDesignForRef) * v-bind(windowSizeInCssForRef));
|
|
|
|
+ bottom: calc(50 /v-bind(windowSizeWhenDesignForRef) * v-bind(windowSizeInCssForRef));
|
|
|
|
+ z-index: 2;
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ >.author-box {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 100%;
|
|
|
|
+ background: rgba(73, 91, 71, 0.7);
|
|
|
|
+ backdrop-filter: blur(22.5px);
|
|
|
|
+ position: fixed;
|
|
|
|
+ top: 0;
|
|
|
|
+ left: 0;
|
|
|
|
+ padding: 0 10%;
|
|
|
|
+ z-index: 15;
|
|
|
|
+ padding-top: 15%;
|
|
|
|
+ padding-left: 10%;
|
|
|
|
+ padding-right: 10%;
|
|
|
|
|
|
- >.author-desc {
|
|
|
|
|
|
+ >.author-content {
|
|
width: 100%;
|
|
width: 100%;
|
|
- color: white;
|
|
|
|
|
|
+ height: 100%;
|
|
overflow: auto;
|
|
overflow: auto;
|
|
- font-family: KaiTi, KaiTi;
|
|
|
|
- color: #FFFFFF;
|
|
|
|
- animation: none;
|
|
|
|
- font-size: calc(20 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
- line-height: calc(29 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ align-items: center;
|
|
|
|
+ >.author-img {
|
|
|
|
+ width: 40%;
|
|
|
|
+ margin-bottom: 5px;
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ >.author-name {
|
|
|
|
+ width: 50%;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ >.line {
|
|
|
|
+ width: 100%;
|
|
|
|
+ min-height: 1px;
|
|
|
|
+ background: #E1EDD9;
|
|
|
|
+ margin: 15px auto;
|
|
|
|
+ content: "";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ >.text-box {
|
|
|
|
+ width: 100%;
|
|
|
|
+
|
|
|
|
+ >p {
|
|
|
|
+ text-indent: 2em;
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
+ color: #FFFFFF;
|
|
|
|
+ font-size: calc(24 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
+ line-height: calc(30 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
+ font-family: KaiTi, KaiTi;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
- >.down-icon {
|
|
|
|
|
|
+ >.bottom-box{
|
|
|
|
+ width: 100%;
|
|
|
|
+ min-height: 20vh;
|
|
|
|
+ background: linear-gradient( 0deg, rgba(73, 91, 71, 0.7) 0%, rgba(115,115,115,0) 100%);
|
|
|
|
+ position: absolute;
|
|
|
|
+ bottom: 0;
|
|
|
|
+ left: 0;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ >.back-btn{
|
|
|
|
+ width: 25px;
|
|
|
|
+ left: 20px;
|
|
|
|
+ bottom: 30px;
|
|
position: absolute;
|
|
position: absolute;
|
|
- transform: translateX(-50%);
|
|
|
|
- left: 50%;
|
|
|
|
- bottom: calc(45 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
- width: calc(35 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ >.system-btns {
|
|
|
|
+ // width: 100%;
|
|
|
|
+ padding: 0 calc(20 / v-bind(windowSizeWhenDesignForRef) * v-bind(windowSizeInCssForRef));
|
|
|
|
+ position: fixed;
|
|
|
|
+ left: calc(30 /v-bind(windowSizeWhenDesignForRef) * v-bind(windowSizeInCssForRef));
|
|
|
|
+ bottom: calc(35 /v-bind(windowSizeWhenDesignForRef) * v-bind(windowSizeInCssForRef));
|
|
|
|
+ z-index: 34;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ >.stem-operation-h {
|
|
|
|
+ z-index: 10;
|
|
|
|
+ left: 77% !important;
|
|
|
|
+ bottom: 36% !important;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ >.leaf-operation-h {
|
|
|
|
+ z-index: 10;
|
|
|
|
+ left: 77% !important;
|
|
|
|
+ bottom: 36% !important;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ >.stone-operation-h {
|
|
|
|
+ z-index: 10;
|
|
|
|
+ left: 77% !important;
|
|
|
|
+ bottom: 36% !important;
|
|
}
|
|
}
|
|
|
|
|
|
>.fixed-desc {
|
|
>.fixed-desc {
|
|
@@ -1687,10 +1946,15 @@ function onClickGoNextPage() {
|
|
>.progress-bar {
|
|
>.progress-bar {
|
|
position: absolute;
|
|
position: absolute;
|
|
left: 0;
|
|
left: 0;
|
|
- bottom: 0;
|
|
|
|
- width: 100%;
|
|
|
|
|
|
+ bottom: 15px;
|
|
|
|
+ left: 50%;
|
|
|
|
+ transform: translateX(-50%);
|
|
|
|
+ width: 90%;
|
|
height: 15px;
|
|
height: 15px;
|
|
z-index: 3;
|
|
z-index: 3;
|
|
|
|
+ color: #e1edd95d;
|
|
|
|
+ transition: all 1s;
|
|
|
|
+ z-index: 12;
|
|
|
|
|
|
>.bar-artwork-desc {
|
|
>.bar-artwork-desc {
|
|
position: absolute;
|
|
position: absolute;
|
|
@@ -1766,7 +2030,7 @@ function onClickGoNextPage() {
|
|
top: 0;
|
|
top: 0;
|
|
width: 100%;
|
|
width: 100%;
|
|
height: 100%;
|
|
height: 100%;
|
|
- overflow: auto;
|
|
|
|
|
|
+ overflow: hidden;
|
|
transition: transform 2s ease;
|
|
transition: transform 2s ease;
|
|
z-index: 3;
|
|
z-index: 3;
|
|
|
|
|
|
@@ -1796,9 +2060,10 @@ function onClickGoNextPage() {
|
|
>button.go-next-page {
|
|
>button.go-next-page {
|
|
position: absolute;
|
|
position: absolute;
|
|
left: 50%;
|
|
left: 50%;
|
|
- bottom: calc(25 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
|
+ bottom: calc(45 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
z-index: 20;
|
|
z-index: 20;
|
|
transform: translate(-50%, 0);
|
|
transform: translate(-50%, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-</style>
|
|
|
|
|
|
+</style>import { transform } from "lodash"
|
|
|
|
+
|