diff --git a/bmzm/home/home.vue b/bmzm/home/home.vue index 52449cc..223b1be 100644 --- a/bmzm/home/home.vue +++ b/bmzm/home/home.vue @@ -36,51 +36,38 @@ \ No newline at end of file +@font-face { + font-family: "SourceHanSerif-Regular"; + src: url(/static/fonts/SourceHanSerifSC-Regular.otf); +} + +.main-swiper { + width: 100%; + height: 100vh; +} + +.page-container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 100%; + position: relative; + overflow: hidden; +} + +.loadedPages-three { + height: 100%; + position: relative; + background: #efefef; + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; +} + +.loadedPages-three-content { + height: 100%; + + .loadedPages-three-title { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + margin-top: 30rpx; + + .txt { + font-size: 24rpx; + color: #333; + font-family: SourceHanSerif-Regular; + display: flex; + flex-direction: column; + align-items: center; + + text { + display: block; + } + } + + .txt:first-child { + margin-left: 30rpx; + } + + .txt:last-child { + margin-right: 30rpx; + } + } + + .loadedPages-three-center { + position: relative; + + .desc { + display: flex; + flex-direction: column; + font-family: SourceHanSerif-Regular; + font-size: 90rpx; + color: #ec4899; + + text { + display: block; + } + } + + .en-desc { + display: flex; + flex-direction: column; + position: absolute; + top: 50%; + right: 0; + transform: translate(-25%, -50%); + font-size: 24rpx; + font-style: italic; + color: #4b5563; + + text { + display: block; + } + } + } + + .loadedPages-three-bottom { + display: flex; + flex-direction: column; + align-items: center; + margin-bottom: 30rpx; + + .bottom-img { + width: 400rpx; + height: 120rpx; + } + + .bottom-tit { + font-size: 38rpx; + } + + .bottom-txt { + font-size: 24rpx; + font-style: italic; + color: #4b5563; + } + } +} + +.bg-image { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1; +} + +.content-layer { + position: relative; + z-index: 2; + width: 100%; + height: 100%; + display: flex; + align-items: center; + flex-direction: column; +} + +.content-layer2 { + z-index: 2; + position: absolute; + bottom: 5%; + right: 5%; +} + +.layer-img { + width: 650rpx; + height: 100%; +} + +.arrow-down { + width: 100rpx; + height: 40rpx; + animation: bounce 1.5s infinite; +} + +.layer-icon { + width: 100rpx; + height: 100rpx; + animation: bounce 1.5s infinite; +} + +.overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.3); + z-index: 10; +} + +.fixed-nav { + width: 80rpx; + height: 80rpx; + background-color: rgb(0 0 0 / 0.7); + border-radius: 10rpx 0 0 10rpx; + position: fixed; + right: 0; + top: 0; + bottom: 0; + margin: auto 0; + display: flex; + align-items: center; + justify-content: center; + z-index: 9; + transition: transform 0.3s ease, opacity 0.3s ease; +} + +.fixed-nav.hidden { + transform: translateX(100%); + opacity: 0; + pointer-events: none; +} + +.nav-icon { + width: 35rpx; + height: 35rpx; + transition: transform 0.3s ease; +} + +.nav-icon.rotated { + transform: rotate(180deg); +} + +.nav-icon.bounce-back { + animation: bounceRotation 0.5s ease; +} + +@keyframes bounceRotation { + 0% { + transform: rotate(180deg); + } + + 50% { + transform: rotate(-20deg); + } + + 75% { + transform: rotate(10deg); + } + + 100% { + transform: rotate(0deg); + } +} + +.nav-menu { + position: fixed; + top: 50%; + right: 0; + transform: translate(100%, -50%); + z-index: 11; + background-color: rgba(255, 255, 255, 0.95); + border-radius: 16rpx 0 0 16rpx; + box-shadow: -4px 0 15px rgba(0, 0, 0, 0.1); + transition: transform 0.3s ease; +} + +.nav-menu.show { + transform: translate(0, -50%); +} + +.nav-item { + padding: 20rpx; + text-align: center; + + text { + color: #333; + opacity: 0.7; + font-size: 28rpx; + } +} + +.item-active { + background-color: rgba(0, 0, 0, 0.1); +} + +.nav-item .active { + color: #333; + opacity: 1; +} + +.chapter-text { + display: flex; + flex-direction: column; + align-items: center; + line-height: 1.3; +} + +.chapter-title { + color: #333; + opacity: 0.7; + font-size: 24rpx; +} + +.chapter-number { + color: #333; + opacity: 0.7; + font-size: 28rpx; + margin-top: 8rpx; +} + +.item-active .chapter-title, +.item-active .chapter-number.active { + opacity: 1; +} + +@keyframes bounce { + 0%, + 20%, + 50%, + 80%, + 100% { + transform: translateY(0); + } + + 40% { + transform: translateY(-20rpx); + } + + 60% { + transform: translateY(-10rpx); + } +} + +.blur-to-clear { + animation: blurToClear 1.5s ease-out forwards; +} + +@keyframes blurToClear { + 0% { + filter: blur(10px); + opacity: 0.3; + } + + 100% { + filter: blur(0); + opacity: 1; + } +} + +.hidden { + opacity: 0; +} + +.bounce-in { + animation: bounceIn 1s ease forwards; +} + +@keyframes bounceIn { + 0% { + opacity: 0; + transform: scale(0.3) translateY(100px); + } + + 50% { + opacity: 1; + transform: scale(1.05) translateY(-10px); + } + + 70% { + transform: scale(0.9) translateY(5px); + } + + 100% { + opacity: 1; + transform: scale(1) translateY(0); + } +} + +.fade-slide-up { + animation: fadeSlideUp 1s ease-out forwards; +} + +@keyframes fadeSlideUp { + 0% { + opacity: 0; + transform: translateY(30px); + } + + 100% { + opacity: 1; + transform: translateY(0); + } +} + +.chapterCover-btn { + position: absolute; + left: 50%; + bottom: 10%; + transform: translate(-50%, -50%); + width: 300rpx; + height: 100rpx; + z-index: 2; +} + +.qrcode-txt { + width: 30vw; + z-index: 2; + position: fixed; + left: 0; + right: 0; + margin: 100rpx auto 0; +} + +.qrcode-txts { + width: 28vw; + z-index: 2; + position: fixed; + left: 0; + right: 0; + margin: 335rpx auto 0; +} + +.message-board { + width: 100%; +} + +.qrCode-image { + position: absolute; + left: 0; + right: 0; + bottom: 192rpx; + margin: 0 auto; + z-index: 2; + width: 30vw; +} + +.image-popup-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.8); + z-index: 9999; + display: flex; + align-items: center; + justify-content: center; +} + +.image-popup-container { + position: relative; + max-width: 90vw; + max-height: 90vh; +} + +.popup-image { + width: 750rpx; + height: 654rpx; + max-width: 100%; + max-height: 100%; +} + +.close-btn { + position: absolute; + top: -20rpx; + right: -20rpx; + width: 60rpx; + height: 60rpx; + background-color: rgba(255, 255, 255, 0.9); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 40rpx; + color: #333; + cursor: pointer; +} + diff --git a/xrcc/home/home.vue b/xrcc/home/home.vue index 5ea045d..b91237c 100644 --- a/xrcc/home/home.vue +++ b/xrcc/home/home.vue @@ -152,7 +152,6 @@ export default { background-repeat: no-repeat; position: relative; -<<<<<<< HEAD .img1-text { position: absolute; width: 632.16rpx; @@ -161,31 +160,6 @@ export default { right: 0; margin: 0 auto; } -======= - .img1-text { - position: absolute; - width: 632.16rpx; - top: 170rpx; - left: 0; - right: 0; - margin: 0 auto; - } - - .img4-text { - position: absolute; - width: 476.36rpx; - top: 170rpx; - left: 84rpx; - } - - .btn-img { - position: absolute; - width: 149.8rpx; - bottom: 290rpx; - left: 84rpx; - } - } ->>>>>>> master .img4-text { position: absolute; @@ -202,6 +176,20 @@ export default { } } +.img4-text { + position: absolute; + width: 476.36rpx; + top: 170rpx; + left: 84rpx; +} + +.btn-img { + position: absolute; + width: 149.8rpx; + bottom: 290rpx; + left: 84rpx; +} + .swiper-img { width: 100vw; height: 100vh; diff --git a/xxdf/home/home.vue b/xxdf/home/home.vue index 8800fc6..d0934c9 100644 --- a/xxdf/home/home.vue +++ b/xxdf/home/home.vue @@ -234,46 +234,45 @@