본문 바로가기
Coding/JavaScript

[JavaScript] 자바스크립트로 글자 나타나는 움직임 효과 내는 방법 !!

by 포스트it 2023. 3. 10.
반응형

 

[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로 글자 효과를 만들어 내는 로직입니다.
각자 상황에 맞게 잘 사용해보세요 !
728x90
반응형

댓글