I decide my own feelings.Today, it's going to be happiness.
내 기분은 내가 정해 오늘 기분은 행복으로 할래.
I decide my own feelings.Today, it's going to be happiness.
내 기분은 내가 정해 오늘 기분은 행복으로 할래.
마우스 이펙트 - 따라다니기
<main>
<section id="mouseType01">
<div class="cursor"></div>
<div class="mouse__wrap">
<p>I decide <span class="style1">my</span> own <span class="style2">feelings.</span>Today, it's going to be <span class="style3">happiness.</span></p>
<p>내 <span class="style4">기분</span>은 <span class="style5">내가 정해</span> 오늘 기분은 <span class="style6">행복</span>으로 할래.</p>
</div>
</section>
</main>
body::before {
background: rgba(0,0,0,0.4);
}
.mouse__wrap {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
color: #fff;
width: 100%;
height: 100vh;
overflow: hidden;
cursor: none;
}
.mouse__wrap p {
font-size: 2.5vw;
line-height: 2;
font-weight: 300;
}
.mouse__wrap p:last-child {
font-size: 3vw;
font-weight: 400;
}
.mouse__wrap p span {
border-bottom: 0.15vw dashed #fff;
}
.cursor {
position: absolute;
left: 0;
top: 0;
width: 50px;
height: 50px;
border-radius: 50%;
border: 3px solid #fff;
background-color: rgba(255,255,255,0.1);
user-select: none;
pointer-events: none;
transition:
background-color 0.2s,
border-color 0.2s,
border-radius 0.3s,
transform .6s;
}
.cursor.style1 {
background-color: rgba(255,165,0,0.4);
border-color: orange;
}
.cursor.style2 {
background-color: rgba(140,0,255,0.4);
border-color: rgba(140,0,255);
transform: rotate(720deg) scale(2);
}
.cursor.style3 {
background-color: rgb(0, 47, 255, 0.4);
border-color: rgb(0, 47, 255);
transform: scale(1.5) rotate(45deg);
border-radius: 10px;
}
.cursor.style4 {
background-color: rgb(121, 235, 197, 0.4);
border-color: rgb(121, 235, 197);
transform: scale(10) rotateY(360deg);
}
.cursor.style5 {
background-color: rgb(255, 0, 85, 0.4);
border-color: rgb(255, 0, 85);
transform: rotateY(720deg) scale(0.1);
}
.cursor.style6 {
background-color: rgba(255, 0, 157, 0.4);
border-color: rgb(255, 0, 191);
transform: rotate(720deg) scale(3);
border-radius: 15px;
}
//출력용
window.addEventListener("mousemove", (event)=> {
document.querySelector(".clientX").innerText = event.clientX
document.querySelector(".clientY").innerText = event.clientY
document.querySelector(".offsetX").innerText = event.offsetX
document.querySelector(".offsetY").innerText = event.offsetY
document.querySelector(".pageX").innerText = event.pageX
document.querySelector(".pageY").innerText = event.pageY
document.querySelector(".screenX").innerText = event.screenX
document.querySelector(".screenY").innerText = event.screenY
});
//마우스 움직이기
window.addEventListener("mousemove", (e)=>{
document.querySelector(".cursor").style.left = e.clientX -25 + "px";
document.querySelector(".cursor").style.top = e.clientY -25 + "px";
});
//마우스 효과
// document.querySelector(".style1").addEventListener("mouseover", () => {
// document.querySelector(".cursor").classList.add("style1");
// })
// document.querySelector(".style1").addEventListener("mouseout", () => {
// document.querySelector(".cursor").classList.remove("style1");
// })
// document.querySelector(".style2").addEventListener("mouseover", () => {
// document.querySelector(".cursor").classList.add("style2");
// })
// document.querySelector(".style2").addEventListener("mouseout", () => {
// document.querySelector(".cursor").classList.remove("style2");
// })
// document.querySelector(".style3").addEventListener("mouseover", () => {
// document.querySelector(".cursor").classList.add("style3");
// })
// document.querySelector(".style3").addEventListener("mouseout", () => {
// document.querySelector(".cursor").classList.remove("style3");
// })
// document.querySelector(".style4").addEventListener("mouseover", () => {
// document.querySelector(".cursor").classList.add("style4");
// })
// document.querySelector(".style4").addEventListener("mouseout", () => {
// document.querySelector(".cursor").classList.remove("style4");
// })
// document.querySelector(".style5").addEventListener("mouseover", () => {
// document.querySelector(".cursor").classList.add("style5");
// })
// document.querySelector(".style5").addEventListener("mouseout", () => {
// document.querySelector(".cursor").classList.remove("style5");
// })
// document.querySelector(".style6").addEventListener("mouseover", () => {
// document.querySelector(".cursor").classList.add("style6");
// })
// document.querySelector(".style6").addEventListener("mouseout", () => {
// document.querySelector(".cursor").classList.remove("style6");
// })
//for
const mouseStyle = document.querySelectorAll(".mouse__wrap span");
console.log(mouseStyle);
for(let i =0; i<mouseStyle.length; i++){
mouseStyle[i].addEventListener("mouseover",()=>{
document.querySelector(".cursor").classList.add("style"+(i+1));
});
mouseStyle[i].addEventListener("mouseout",()=>{
document.querySelector(".cursor").classList.remove("style"+(i+1));
});
};
// //forEach
// mouseStyle.forEach((e,i)=>{
// e.addEventListener("mouseover",()=>{
// document.querySelector(".cursor").classList.add("style"+(i+1));
// });
// e.addEventListener("mouseout",()=>{
// document.querySelector(".cursor").classList.remove("style"+(i+1));
// });
// });