<div id="wrapper" onmousemove="moveFunc(event);" ontouchmove="moveFunc(event);">
<div class="logo" id="logoDiv">
<div id="eyeObj">
<div class="wing"></div>
<div class="wing"></div>
<div class="wing"></div>
<div class="eye"></div>
</div>
</div>
</div>
HTML
格式化
支持Emmet,输入 p 后按 Tab键试试吧!
<head> ... </head>
<body>
</body>
#wrapper {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
}
.logo {
position: relative;
width: 200px;
height: 200px;
border-radius: 50%;
overflow: hidden;
background: linear-gradient(
90deg,
rgba(27, 148, 66, 1) 0%,
rgba(27, 148, 66, 1) 50%,
rgba(255, 190, 0, 1) 50%,
rgba(255, 190, 0, 1) 100%
);
/* background: lightgrey; */
}
#eyeObj {
position: absolute;
width: 100%;
height: 100%;
top: 50%;
left: 50%;
}
.eye {
position: absolute;
width: 33%;
height: 33%;
left: 0%;
top: 0%;
transform: translate(-50%, -50%);
background-color: #0078ec;
border: 10px solid white;
border-radius: 50%;
}
.wing {
position: absolute;
width: 400%;
height: 400%;
left: 0%;
top: 0%;
transform: translate(-50%, -50%) rotate(10deg);
background-color: #e13b26;
clip-path: polygon(0 0, 100% 0, 100% 45%, 50% 46%, 45% 50%);
}
.wing:nth-of-type(2) {
transform: translate(-50%, -50%) rotate(130deg);
background-color: #ffbe00;
/* display: none; */
}
.wing:nth-of-type(3) {
transform: translate(-50%, -50%) rotate(250deg);
background-color: #1b9442;
/* display: none; */
}
function moveFunc(e) {
percentX = document.getElementById("wrapper").offsetWidth / 100;
percentY = document.getElementById("wrapper").offsetHeight / 100;
document.getElementById("eyeObj").style.top = e.pageY / percentY + "%";
document.getElementById("eyeObj").style.left = e.pageX / percentX + "%";
checkX = e.pageX / percentX - 50;
checkY = e.pageY / percentY - 50;
document.getElementById("logoDiv").style.transform =
"translate(" + checkX + "%, " + checkY + "%" + ")";
}