<div class="box">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/881020/book34.jpg" alt="">
</div>
<div class="controle">
<input type="checkbox" id="composition" name="composition" />
<label for="composition">合成</label>
</div>
<div class="tutorials">
<a href="https://s.juejin.cn/ds/idBv71cd" target="_blank">
<svg t="1696988571607" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4422" width="200" height="200">
<path d="M924.8 576.64v-115.2c12.8-13.44 13.44-26.88 12.8-34.56-3.2-30.08-36.48-42.24-47.36-46.72-79.36-30.08-226.56-89.6-307.84-122.88-49.28-24.32-65.28-19.84-113.28-0.64-12.8 5.12-224.64 83.84-306.56 117.76-44.8 18.56-51.2 46.08-51.2 61.44 0 25.6 17.92 48.64 50.56 62.08L259.84 537.6v257.28l8.32 8.32c3.84 3.84 91.52 92.16 252.16 92.16 150.4 0 236.16-88.96 240-92.8l7.68-8.32V540.16l36.48-15.36-1.28 52.48-29.44 49.28 88.96 84.48 98.56-85.76-36.48-48.64zM710.4 771.2c-22.4 18.56-88.96 67.2-190.08 67.2-111.36 0-179.84-48.64-202.88-67.2V561.28l144.64 58.88h0.64c46.08 17.28 81.28 16 125.44-3.2l122.24-51.84v206.08z m154.24-138.24l-17.92-16.64 13.44-22.4 2.56-102.4c4.48-14.08-0.64-25.6-8.32-32-7.68-7.04-21.76-11.52-36.48-2.56L565.12 563.84c-30.08 13.44-49.92 14.08-81.92 2.56l-298.88-121.6c-7.68-3.2-12.16-6.4-14.08-8.96 1.92-1.92 6.4-5.12 14.72-8.96 81.92-33.92 302.72-116.48 305.28-117.12h0.64c38.4-15.36 38.4-15.36 67.2-0.64l1.92 0.64c80.64 32.64 226.56 92.16 307.2 122.88v163.2l16 21.12-18.56 16z" p-id="4423"></path>
</svg>
</a>
</div>
@import url("https://fonts.googleapis.com/css?family=Gochi+Hand");
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
width: 100vw;
height: 100vh;
margin: 0;
padding: 0;
background-color: #291642;
font-family: "Gochi Hand", sans-serif;
font-size: 130%;
letter-spacing: 0.1rem;
display: flex;
align-items: center;
justify-content: center;
}
.box {
background-color: #eebc1f;
width: 20vw;
padding-bottom: 20%;
height: 0;
transform: rotate(45deg);
position: relative;
transition: all 0.2s ease;
}
.box::before,
.box::after {
content: "";
display: block;
width: 100%;
height: 100%;
position: absolute;
transition: all 0.2s ease;
}
.box::before {
transform: translate(-100%, 100%);
background-color: #068d7e;
background: conic-gradient(#eebc1f 25%, #068d7e 0 50%, #eebc1f 0) 100% 100% /
180% 180%;
clip-path: polygon(0 0, 100% 0, 100% 20%, 20% 20%, 20% 100%, 0 100%);
}
.box::after {
transform: translate(100%, -100%);
background-color: #068d7e;
background: conic-gradient(#eebc1f 75%, #068d7e 0) 0 0 / 180% 180%;
clip-path: polygon(80% 20%, 100% 0, 100% 100%, 0% 100%, 20% 80%, 80% 80%);
}
.box img {
position: absolute;
width: 64%;
left: 50%;
top: 50%;
transform: translateX(120%) translateY(-200%) rotatez(-45deg);
padding-bottom: 20%;
box-shadow: 5px -5px 10px rgba(0, 0, 0, 0.3);
transition: all 0.2s ease;
}
.controle {
color: #fff;
position: absolute;
left: 50%;
bottom: 5vh;
transform: translate(-50%, 0);
}
.box.play::before,
.box.play::after {
transform: none;
}
.box.play img {
transform: translateX(-50%) translateY(-50%) rotatez(-45deg);
}
.tutorials {
position: fixed;
bottom: 1rem;
right: 1rem;
z-index: 9999;
width: 64px;
aspect-ratio: 1;
border-radius: 50%;
background: #3f517e;
padding: 0.5rem;
display: grid;
place-content: center;
transition: all 0.28s linear;
&:hover {
background: #4161b2;
}
& svg {
display: block;
width: 100%;
height: 100%;
filter: invert(1);
}
}
View Compiled
const inputEle = document.getElementById("composition");
const containerEle = document.querySelector(".box");
inputEle.addEventListener("click", (e) => {
if (e.target.checked) {
containerEle.classList.add("play");
} else {
containerEle.classList.remove("play");
}
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.