Illie
mouseEffect06 - 텍스트 효과 본문
개요
글자가 구겨저있는 것도 신기한데
심지어 마우스의 움직임에 따라 움직이기도 한다!
이를 한 번 쪼개보자!
HTML
<div class="mouse__text">
<div class="line">
<div class="left">
<div class="spanWrap">
<div class="spanSlow">Pain Past</div>
</div>
</div>
<div class="right">
<div class="spanWrap">
<div class="spanSlow">Pain Past</div>
</div>
</div>
</div>
<div class="line">
<div class="left">
<div class="spanWrap">
<div class="spanFast">is pleasure.</div>
</div>
</div>
<div class="right">
<div class="spanWrap">
<div class="spanFast">is pleasure.</div>
</div>
</div>
</div>
줄 마다 left, right라 적고 2개씩 만들어준다
그리고 느리게 움직이는 것을 spanSlow, 빠르게 움직이는 것을 spanFast라 설정한다
CSS
.mouse__text .line .left {
width: 50vw;
color: orange;
transform: skew(0deg, -15deg);
overflow: hidden;
}
.mouse__text .line .left .spanWrap {
width: 100vw;
text-align: center;
}
.mouse__text .line .right {
width: 50vw;
overflow: hidden;
transform: skew(0deg, 15deg);
}
.mouse__text .line .right .spanWrap {
width: 100vw;
text-align: center;
transform: translateX(-50vw);
}
overflow: hidden을 주어 서로가 겹치는 부분은 나오지 않게 해준다(이게 제일 신기하다)
그리고 왼쪽과 오른쪽의 글자 색을 다르게 해서 입체감을 준다
JAVASCRIPT
<script>
function mousemove(e){
let positionSlow = (e.pageX - (window.innerWidth/2)) * 0.13;
let positionFast = (e.pageX - (window.innerWidth/2)) * 0.25;
gsap.to(".spanSlow", {duration: 0.4, x: positionSlow});
gsap.to(".spanFast", {duration: 0.4, x: -positionFast});
gsap.to(".cursor", {duration: 0.3, left: e.pageX, top: e.pageY});
}
document.addEventListener("mousemove", mousemove);
</script>
느리게 움직이는 것은 * 0.13으로,
빠르게 움직이는 것은 *0.25를 해주어서
효과를 내 준다
'JAVASCRIPT > 자바스크립트' 카테고리의 다른 글
mouseEffect 08 - customed (0) | 2022.04.14 |
---|---|
mouseEffect07 - 이미지 오버 효과 (0) | 2022.04.14 |
JS. 카드 게임(2) - 마우스를 빨리누르면 생기는 버그 (0) | 2022.04.14 |
JS. 카드 게임(1) - 값을 두 개 가져오기 (0) | 2022.04.14 |
JS. 기껏 했더니 통째로 움직이고 난리... (0) | 2022.03.31 |
Comments