마우스 이펙트
마우스 이펙트 세번째 시간입니다.
마우스 이펙트 03
마우스 커서를 따라서 비춰주는 조명효과를 주었습니다.
01. HTML 코드
{
<main id="main">
<section id="mouseType">
<div class="mouse__cursor"></div>
<div class="mouse__wrap">
<p>Resolve to <span>perform</span> what your ought, <span>perform</span> without fail <span>what you resolve</span></p>
<p>해야할 일은 과감히 하라, <span>결심한 일은</span> 반드시 <span>실행하라.</span></p>
</div>
</section>
</main>
}
02. CSS 코드
커서포인터의 배경이미지를 배경과 같은이미지로 해주고 중앙으로 맞춰줍니다.
{
.mouse__wrap {
width: 100%;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
color: #fff;
overflow: hidden;
cursor: none;
}
.mouse__wrap p {
font-size: 2vw;
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 orange;
color: orange;
}
@media (max-width: 800px){
.mouse__wrap p {
padding: 0 20px;
font-size: 24px;
line-height: 1.5;
text-align: center;
margin-bottom: 10px;
}
.mouse__wrap p:last-child {
font-size: 40px;
line-height: 1.5;
text-align: center;
word-break: keep-all;
}
}
.mouse__cursor {
position: absolute;
left: 0;
top: 0;
width: 200px;
height: 200px;
z-index: -1;
border-radius: 50%;
background: #fff;
background-image: url(../assets/img/effect_bg08@2x-min.jpg);
background-size: cover;
background-position: center center;
background-attachment: fixed;
border: 5px solid #fff;
}
}
03. script 코드
먼저, getBoundingClientRect를 이용해서 커서 위치값을 객체 형태로 구해줍니다.
좌표의 기준값을 중앙으로 잡기 위해서 left: e.pageX - circle.width/2, top: e.pageY - circle.height/2,로 맞춰줍니다.
addEventListener를 통해 mousemove에 gsap효과를 넣어줍니다.
{
const cursor = document.querySelector(".mouse__cursor");
// const circleW = cursor.offsetWidth; //200
// const circleH = cursor.offsetHeight; //200
// const circle2 = cursor.clientWidth; //190 : 보더값 제외
const circle = cursor.getBoundingClientRect();
console.log(circle);
// const DOMRect = {
// x: 0,
// y: 0,
// bottom: 200,
// height: 200,
// left: 0,
// right: 200,
// top: 0
// width: 200
// }
window.addEventListener("mousemove", (e) => {
gsap.to(cursor, {
duration: 0.5,
left: e.pageX - circle.width/2,
top: e.pageY - circle.height/2,
});
});
}
'Javascript응용_Effect' 카테고리의 다른 글
Mouse Effect 05 (3) | 2022.09.28 |
---|---|
Mouse Effect 04 (2) | 2022.09.22 |
Parallax Effect 05 (6) | 2022.09.20 |
Mouse Effect 02 (5) | 2022.09.18 |
Parallax Effect 04 (2) | 2022.09.18 |
댓글