728x90
mouseEffect | 배경 조명 효과
오늘의 목표
👉🏻 마우스 커서 움직임에 따라 배경 사진에 조명을 비추는 느낌으로 효과주기
1. 사이트 구조 살펴보기
CSS 살펴보기
span으로 감싼 글자는 키워드로 색깔을 다르게 주었습니다.
cursor 디자인도 따로 조명을 비추는 듯한 느낌으로 디자인 했습니다.
<style>
/* mouseType */
.mouse__wrap {
/* vw하면 스크롤 생김 */
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 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;
word-break: keep-all;
}
}
.mouse__cursor {
position: absolute;
left: 0;
top: 0;
width: 200px;
height: 200px;
z-index: -1;
border-radius: 50%;
background-image: url(../assets/img/effect_bg21.jpg);
background-size: cover;
background-position: center;
background-attachment: fixed;
border: 5px solid #fff;
cursor: none;
}
</style>
HTML 살펴보기
영화 '니모를 찾아서'에 나오는 명언을 넣어주었습니다.
<main id="main">
<section id="mouseType">
<div class="mouse__cursor"></div>
<div class="mouse__wrap">
<p>
The <span>best moment</span> suddenly <span>comes.</span>
</p>
<p>
<span>최고의 순간</span>은 <span>갑자기 찾아오는</span> 거야.
</p>
</div>
</section>
</main>
2. script 살펴보기
📌 cursor에 움직임에 따라 배경이 컬러로 보일 수 있는 이유
cursor 자체에 background-image를 넣고 위치와 크기를 맞춰준 다음 fix시켜 마우스의 움직임에 따라 보일 수 있도록 설정해주었습니다.
cursor의 위치를 마우스 가운데로 위치하기 위해 left와 top 값을 재지정했습니다.
움직임을 더 부드럽게 해주기 위해 gsap를 활용했습니다.
<script>
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
});
});
</script>
'EFFECT > MOUSE' 카테고리의 다른 글
EFFECT | MOUSE | 텍스트 효과 (2) | 2022.09.30 |
---|---|
EFFECT | MOUSE | 이미지 기울기 / 글자 반전 효과 주기 (5) | 2022.09.28 |
EFFECT | MOUSE | 마우스 커서 움직임 반대로 이미지 움직이기 (2) | 2022.09.23 |
EFFECT | MOUSE | 마우스 따라다니기(GSAP) (6) | 2022.09.19 |
EFFECT | MOUSE | 마우스 따라다니기 (5) | 2022.09.19 |
댓글