UNPKG

unika-components

Version:

Unika Vue3 components library

713 lines (615 loc) 13.3 kB
/* ===== 送呈(启呈)运行时样式 ===== */ #invite { position: absolute; left: 0; top: 0; bottom: 0; right: 0; z-index: 104; overflow: hidden; background-color: transparent; cursor: pointer; } /* 编辑器 iframe 预览 */ #invite.uni-invite--preview { position: absolute; left: 0; top: 0; bottom: 0; right: 0; transform: none; max-width: none; cursor: default; } /* ---------- type1 ---------- */ #invite .type1 { width: 100%; height: 100%; position: relative; } #invite .type1 .img1 { width: 100%; height: 100%; position: absolute; top: 0; left: 0; object-fit: cover; } #invite .type1 .content-center { width: 8.53333rem; height: 5.76rem; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } #invite .type1 .content-center .bottom-ani, #invite .type1 .content-center img { width: 100%; height: 100%; position: absolute; top: 0; left: 0; } #invite .type1 .content-center .bottom-ani { transform-origin: bottom center; transform-style: preserve-3d; } #invite .type1 .content-center .bottom-ani .img3 { width: 100%; height: 100%; top: 0; left: 0; transform-origin: bottom center; object-fit: contain; } #invite .type1 .content-center .bottom-ani .content { font-size: 0.32rem; position: absolute; top: 4.8rem; left: 50%; transform: translateX(-50%); backface-visibility: hidden; white-space: nowrap; } #invite .type1 .content-center .top-ani { position: absolute; width: 100%; height: 100%; top: 0; left: 0; transform-origin: top center; transform-style: preserve-3d; } #invite .type1 .content-center .top-ani .title { font-size: 0.53333rem; font-weight: 900; left: 0.90667rem; } #invite .type1 .content-center .top-ani .name, #invite .type1 .content-center .top-ani .title { position: absolute; height: 0.64rem; top: 1.2rem; display: flex; align-items: center; justify-content: center; backface-visibility: hidden; white-space: nowrap; } #invite .type1 .content-center .top-ani .name { padding: 0 0.10667rem; border-bottom: 0.02667rem solid #ffe5c7; border-top: 0.02667rem solid #ffe5c7; font-size: 0.32rem; right: 0.90667rem; } #invite .type1 .content-center .top-ani .img5 { backface-visibility: hidden; } #invite .type1 .content-center .img6 { width: 100%; height: 2.13333rem; top: 1.81333rem; animation: invite-breathing 2s linear infinite; } #invite .type1.active { animation: invite-vanish 1s linear 1.8s; animation-fill-mode: both; } #invite .type1.active .bottom-ani { animation: invite-bottomOpen 1.2s linear 0.6s; animation-fill-mode: both; } #invite .type1.active .top-ani { animation: invite-topOpen 1.2s linear 0.5s; animation-fill-mode: both; } #invite .type1.active .img6 { animation: invite-vanish 0.5s linear; animation-fill-mode: both; } /* ---------- type2(默认) ---------- */ #invite .type2 { width: 100%; height: 100%; position: relative; } #invite .type2 .img1, #invite .type2 .top-ani { width: 100%; height: 100%; position: absolute; top: 0; left: 0; } #invite .type2 .img1 { object-fit: cover; } #invite .type2 .top-ani { transform-origin: top center; transform-style: preserve-3d; } #invite .type2 .top-ani .img2 { width: 100%; position: absolute; top: 0; left: 0; } #invite .type2 .top-ani .title { font-size: 1.12rem; font-weight: 900; position: absolute; top: 1.49333rem; left: 50%; transform: translateX(-50%); display: flex; flex-flow: column; align-items: center; } #invite .type2 .top-ani .title span { display: block; } #invite .type2 .top-ani .divider { width: 2.93333rem; position: absolute; top: 5.06667rem; left: 50%; transform: translateX(-50%); } #invite .type2 .top-ani .name { font-size: 0.50667rem; top: 5.81333rem; } #invite .type2 .content, #invite .type2 .top-ani .name { position: absolute; left: 50%; transform: translateX(-50%); white-space: nowrap; } #invite .type2 .content { width: 100%; bottom: 1.73333rem; text-align: center; z-index: 2; } #invite .type2 .img3 { width: 100%; height: 3.73333rem; position: absolute; top: 7.46667rem; left: 0; z-index: 5; object-fit: contain; pointer-events: none; animation: invite-breathing 2s linear infinite; } #invite .type2.active { animation: invite-vanish 1s linear 1.2s; animation-fill-mode: both; } #invite .type2.active .top-ani { animation: invite-topOpen 1.2s linear 0.5s; animation-fill-mode: both; } #invite .type2.active .img3 { animation: invite-vanish 0.5s linear; animation-fill-mode: both; } /* ---------- type3 ---------- */ #invite .type3 { width: 100%; height: 100%; position: relative; } #invite .type3 .img1, #invite .type3 .right-ani { width: 100%; height: 100%; position: absolute; left: 0; top: 0; } #invite .type3 .img1 { object-fit: cover; } #invite .type3 .right-ani { transform-origin: right center; transform-style: preserve-3d; } #invite .type3 .right-ani .img2 { width: 100%; height: 100%; position: absolute; left: 0; object-fit: cover; } #invite .type3 .right-ani .title { font-size: 1.12rem; font-weight: 900; top: 9%; letter-spacing: 0.26667rem; } #invite .type3 .right-ani .name, #invite .type3 .right-ani .title { position: absolute; writing-mode: vertical-lr; text-orientation: upright; right: 1.22667rem; width: 1.12rem; } #invite .type3 .right-ani .name { font-size: 0.56rem; bottom: 9%; letter-spacing: 0.13333rem; text-align: center; line-height: 1.12rem; white-space: nowrap; padding: 0.18667rem 0; border-left: 0.02667rem solid rgba(255, 229, 199, 0.5); border-right: 0.02667rem solid rgba(255, 229, 199, 0.5); } #invite .type3 .right-ani .content { font-size: 0.4rem; letter-spacing: 0.13333rem; position: absolute; writing-mode: vertical-lr; text-orientation: upright; right: 3.36rem; top: 50%; white-space: nowrap; transform: translateY(-50%); } #invite .type3 .img3 { width: 100%; height: 3.73333rem; top: 50%; left: 0; margin-top: -1.86667rem; position: absolute; transform-origin: 25% center; animation: invite-breathing 2s linear infinite; } #invite .type3.active { animation: invite-vanish 1s linear 1.4s; animation-fill-mode: both; } #invite .type3.active .right-ani { animation: invite-rightOpen 1.2s linear 0.5s; animation-fill-mode: both; } #invite .type3.active .img3 { animation: invite-vanish 0.5s linear; animation-fill-mode: both; } /* ---------- type4 ---------- */ #invite .type4 { width: 100%; height: 100%; position: relative; } #invite .type4 .img1, #invite .type4 .img2 { width: 100%; height: 100%; position: absolute; top: 0; left: 0; object-fit: cover; } #invite .type4 .img2 { transform-origin: left center; transform-style: preserve-3d; } #invite .type4 .right-ani { transform-origin: right center; transform-style: preserve-3d; } #invite .type4 .right-ani, #invite .type4 .right-ani .img3 { position: absolute; width: 100%; height: 100%; top: 0; left: 0; } #invite .type4 .right-ani .img3 { object-fit: cover; } #invite .type4 .right-ani .title { font-size: 1.12rem; font-weight: 900; top: 9%; letter-spacing: 0.26667rem; } #invite .type4 .right-ani .name, #invite .type4 .right-ani .title { position: absolute; writing-mode: vertical-lr; text-orientation: upright; right: 1.22667rem; width: 1.12rem; } #invite .type4 .right-ani .name { font-size: 0.56rem; bottom: 9%; letter-spacing: 0.13333rem; text-align: center; line-height: 1.12rem; padding: 0.18667rem 0; white-space: nowrap; border-left: 0.02667rem solid rgba(255, 229, 199, 0.5); border-right: 0.02667rem solid rgba(255, 229, 199, 0.5); } #invite .type4 .right-ani .content { font-size: 0.4rem; letter-spacing: 0.13333rem; position: absolute; writing-mode: vertical-lr; text-orientation: upright; right: 3.36rem; top: 50%; white-space: nowrap; transform: translateY(-50%); } #invite .type4 .img4 { width: 100%; height: 3.73333rem; top: 50%; left: 0; margin-top: -1.86667rem; position: absolute; transform-origin: 30% center; animation: invite-breathing 2s linear infinite; } #invite .type4.active { animation: invite-vanish 1s linear 1.4s; animation-fill-mode: both; } #invite .type4.active .img2 { animation: invite-leftOpen 1.2s linear 0.6s; animation-fill-mode: both; } #invite .type4.active .right-ani { animation: invite-rightOpen 1.2s linear 0.5s; animation-fill-mode: both; } #invite .type4.active .img4 { animation: invite-vanish 0.5s linear; animation-fill-mode: both; } /* ---------- type5 ---------- */ #invite .type5 { width: 100%; height: 100%; position: relative; } #invite .type5 .img1 { width: 100%; height: 100%; position: absolute; top: 0; left: 0; object-fit: cover; } #invite .type5 .content-center { position: absolute; left: 50%; top: 4.08rem; transform: translateX(-50%); width: 8.98667rem; height: 6.02667rem; } #invite .type5 .content-center .img2 { position: absolute; width: 100%; height: 100%; left: 0; top: 0; } #invite .type5 .content-center .top-ani { width: 8.98667rem; height: 4.61333rem; position: absolute; left: 0; top: 0; transform-origin: top center; transform-style: preserve-3d; } #invite .type5 .content-center .top-ani .img3, #invite .type5 .content-center .top-ani .img4 { width: 100%; height: 100%; position: absolute; left: 0; top: 0; } #invite .type5 .content-center .top-ani .img4 { backface-visibility: hidden; } #invite .type5 .content-center .top-ani .title { position: absolute; left: 0.53333rem; top: 0.4rem; backface-visibility: hidden; } #invite .type5 .content-center .top-ani .content { position: absolute; left: 50%; transform: translateX(-50%); top: 1.86667rem; white-space: nowrap; font-size: 0.32rem; backface-visibility: hidden; } #invite .type5 .content-center .img5 { position: absolute; left: 50%; margin-left: -0.98667rem; top: 3.2rem; width: 1.97333rem; height: 1.97333rem; animation: invite-breathing 2s linear infinite; } #invite .type5.active { animation: invite-vanish 1s linear 1.8s; animation-fill-mode: both; } #invite .type5.active .content-center { animation: invite-bottomMove 0.5s linear; animation-fill-mode: both; } #invite .type5.active .content-center .top-ani { animation: invite-topOpen 1.2s linear 0.6s; animation-fill-mode: both; } #invite .type5.active .img5 { animation: invite-vanish 0.5s linear; animation-fill-mode: both; } /* ---------- type6 ---------- */ #invite .type6 { width: 100%; height: 100%; position: relative; } #invite .type6 .img1 { position: absolute; width: 100%; bottom: 0; left: 0; } #invite .type6 .top-ani { width: 100%; position: absolute; top: 0; left: 0; } #invite .type6 .top-ani .img2 { width: 100%; } #invite .type6 .top-ani .title { top: 2.66667rem; font-size: 1.41333rem; writing-mode: vertical-lr; text-orientation: upright; letter-spacing: 0.34667rem; } #invite .type6 .top-ani .content, #invite .type6 .top-ani .title { position: absolute; left: 50%; font-weight: 700; transform: translateX(-50%); } #invite .type6 .top-ani .content { top: 7.14667rem; font-size: 0.48rem; white-space: nowrap; } #invite .type6 .top-ani .name { position: absolute; top: 10.29333rem; left: 50%; font-size: 0.53333rem; transform: translateX(-50%); } #invite .type6 .img3 { position: absolute; width: 4.26667rem; top: 11.2rem; left: 50%; margin-left: -2.13333rem; z-index: 3; animation: invite-breathing 2s linear infinite; } #invite .type6.active { animation: invite-vanish 1s linear 1.5s; animation-fill-mode: both; } #invite .type6.active .img1 { animation: invite-downMove 1s linear 0.3s; animation-fill-mode: both; } #invite .type6.active .top-ani { animation: invite-upMove 1s linear 0.3s; animation-fill-mode: both; } #invite .type6.active .img3 { animation: invite-vanish 0.5s linear; animation-fill-mode: both; } /* ---------- animations ---------- */ @keyframes invite-breathing { 50% { transform: scale3d(1.2, 1.2, 1.2); } } @keyframes invite-vanish { to { opacity: 0; transform: scale3d(1.2, 1.2, 1.2); } } @keyframes invite-topOpen { to { transform: perspective(13.33333rem) rotateX(180deg); animation-timing-function: ease-out; } } @keyframes invite-bottomOpen { to { transform: perspective(13.33333rem) rotateX(-180deg); animation-timing-function: ease-out; } } @keyframes invite-leftOpen { to { transform: perspective(13.33333rem) rotateY(-180deg); animation-timing-function: ease-out; } } @keyframes invite-rightOpen { to { transform: perspective(13.33333rem) rotateY(180deg); animation-timing-function: ease-out; } } @keyframes invite-bottomMove { to { top: 4.61333rem; } } @keyframes invite-upMove { to { transform: translateY(-100%); animation-timing-function: ease-out; } } @keyframes invite-downMove { to { transform: translateY(100%); animation-timing-function: ease-out; } }