반응형
[JavaScript] 자바스크립트로 글자 나타나는 움직임 효과 내는 방법 !!
아래 코드를 사용하여 바로 사용해보세요 !
예제코드
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
#box {
text-align: center;
width: 100%;
max-width: 600px;
padding-top: 100px;
text-align: center;
margin: 0 auto;
font-size: 21px;
line-height: 30px;
letter-spacing: 1px;
opacity: 1;
}
.text-effect p {
display: inline-block;
margin: 0;
letter-spacing: 5px;
opacity: 0;
transition: 0.8s all;
}
button {
width:150px;
margin:0 auto;
height: 50px;
}
</style>
<body>
<button onclick="effect(effect_box,50);">실행버튼</button>
<div id="box" class="text-effect">
안녕하세요.<br/>
javascript로 글자 효과를 만들어 내는 로직입니다.<br/>
각자 상황에 맞게 잘 사용해보세요 !<br/>
</div>
</body>
</html>
<script>
var effect_box = document.getElementsByClassName('text-effect');
// 효과 함수
function effect(object,speed) {
// 해당 객체안에 들어가있는 모든 텍스트갯수를 불러옵니다.
var object_len = object.item(0).innerText.length;
// 해당 객체안에 들어가있는 모든 텍스트를 변수에 할당합니다.
var object_text = object.item(0).innerText;
// 기존에 있는 text모두 제거
object.item(0).innerHTML = '';
for (var i = 0; i <= object_len ; i++){
// 텍스트를 감싸줄 'p' 태그를 생성합니다.
n_tag = document.createElement("p");
// 해당 div에 감싸줄 'p' 태그를 추가합니다.
object.item(0).append(n_tag);
// 넣은 'p' 태그 안에 텍스트를 추가합니다.
n_tag.append(object_text.charAt(i))
if( i >= object_len ) {
var anima = true;
}
}
if( anima === true ){
var turn = 0;
var opacity_txt = setInterval(function(){
document.querySelectorAll('p').item(turn).style.opacity = '1';
turn ++;
// object_len 갯수와 turn 갯수가 동일해지면 작동 중지
if(object_len === turn){
clearInterval(opacity_txt);
}
},speed);
}
}
</script>
결과값
안녕하세요.
javascript로 글자 효과를 만들어 내는 로직입니다.
각자 상황에 맞게 잘 사용해보세요 !
javascript로 글자 효과를 만들어 내는 로직입니다.
각자 상황에 맞게 잘 사용해보세요 !