chore: 帅!

This commit is contained in:
camera-2018
2023-07-20 11:54:41 +08:00
parent 3133236ba9
commit 83ed4c883e
2 changed files with 87 additions and 23 deletions

View File

@@ -39,30 +39,40 @@ const containerStyle: CSSProperties = {
const layer0 = computed(() => ({ const layer0 = computed(() => ({
...layerBase, ...layerBase,
transform: `translateX(${parallax.tilt * 10}px) translateY(${ transform: `translateX(${parallax.tilt * 10}px) translateY(${parallax.roll * 10
parallax.roll * 10 }px) scale(1)`,
}px) scale(1)`,
})) }))
const layer1 = computed(() => ({ const layer1 = computed(() => ({
...layerBase, userSelect: 'none',
transform: `translateX(${parallax.tilt * 20}px) translateY(${ "-webkit-user-drag": "none",
parallax.roll * 20 transform: `translateX(${parallax.tilt * 20}px) translateY(${parallax.roll * 20
}px) scale(1.33)`, }px) scale(1.33)`,
'background-image': 'linear-gradient(125deg, #ff008450 15%, #fca40040 30%, #ffff0030 40%, #00ff8a20 60%, #00cfff40 70%, #cc4cfa50 85%)',
'background-position': '50% 50%',
'background-size': '160%',
'background-blend-mode': 'overlay',
filter: 'brightness(1) contrast(1)',
'mix-blend-mode': 'color-dodge',
opacity: '1',
position: 'absolute',
})) }))
const layer2 = computed(() => ({ const layer2 = computed(() => ({
...layerBase, transform: `translateX(${parallax.tilt * 30}px) translateY(${parallax.roll * 30
transform: `translateX(${parallax.tilt * 30}px) translateY(${ }px) scale(1.33)`,
parallax.roll * 30 'background-image': 'linear-gradient(115deg,transparent 0%,#ec9bb6 25%,transparent 47%,transparent 53%,#ccac6f 75%,transparent 100%)',
}px) scale(1.33)`, opacity: '.1',
filter: 'brightness(.5) contrast(1)',
width: '100%',
height: '100%',
position: 'absolute',
})) }))
const layer3 = computed(() => ({ const layer3 = computed(() => ({
...layerBase, ...layerBase,
transform: `translateX(${parallax.tilt * 40}px) translateY(${ transform: `translateX(${parallax.tilt * 40}px) translateY(${parallax.roll * 40
parallax.roll * 40 }px) scale(1.33)`,
}px) scale(1.33)`,
})) }))
const layer4 = layerBase const layer4 = layerBase
@@ -75,10 +85,9 @@ const cardStyle = computed(() => ({
border: '1px solid #000000', border: '1px solid #000000',
overflow: 'hidden', overflow: 'hidden',
transition: '.3s ease-out all', transition: '.3s ease-out all',
boxShadow: '0 0 20px 0 rgba(255, 255, 255, 0.1)', boxShadow: '-20px -20px 30px -25px #ec9bb6, 20px 20px 30px -25px #ccac6f, -7px -7px 10px -5px #ec9bb6, 7px 7px 10px -5px #ccac6f, 0 0 13px 4px rgba(255,255,255,0.3),0 55px 35px -20px rgba(0, 0, 0, 0.5)',
transform: `rotateX(${parallax.roll * 20}deg) rotateY(${ transform: `rotateX(${parallax.roll * 20}deg) rotateY(${parallax.tilt * 20
parallax.tilt * 20 }deg)`,
}deg)`,
})) }))
</script> </script>
@@ -93,15 +102,70 @@ export default {
<div ref="target" :style="targetStyle"> <div ref="target" :style="targetStyle">
<div :style="containerStyle"> <div :style="containerStyle">
<div :style="cardStyle"> <div :style="cardStyle">
<div id="kirakira"></div>
<div :style="layer2"></div>
<img :style="layer1" src="/sparkles.gif" class="image">
<div :style="cardWindowStyle"> <div :style="cardWindowStyle">
<img <img :style="layer0" src="/hdu-cs-wiki_main.png" class="image">
:style="layer0"
src="/hdu-cs-wiki_main.png"
class="image"
>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<style>
#kirakira {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 1;
transition: .3s ease-out;
}
#kirakira:hover {
background-image: linear-gradient(
110deg,
transparent 25%,
#ec9bb6 48%,
#ccac6f 52%,
transparent 75%
);
background-position: 50% 50%;
background-size: 250% 250%;
opacity: .18;
filter: brightness(.66) contrast(1.33);
transition: none;
background-repeat: no-repeat;
mix-blend-mode: color-dodge;
transition: all .33s ease;
animation: holoGradient 12s ease 0s 1,
}
@keyframes holoGradient {
0%, 100% {
opacity: 0.3;
background-position: 50% 50%;
filter: brightness(.5) contrast(1);
}
5%, 9% {
background-position: 100% 100%;
opacity: 0.1;
filter: brightness(.75) contrast(1.25);
}
13%, 17% {
background-position: 0% 0%;
opacity: .18;
}
35%, 39% {
background-position: 100% 100%;
opacity: 0.2;
filter: brightness(.5) contrast(1);
}
55% {
background-position: 0% 0%;
opacity: 0.3;
filter: brightness(.75) contrast(1.25);
}
}
</style>

BIN
public/sparkles.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB