Blurr 필터 로딩(2)

jb kim·2021년 12월 18일
0

Web Projects

목록 보기
15/50

js

// %표시 글자 , 벡그라운드 객체 상수로 저장
const loadText = document.querySelector('?');
const bg = document.querySelector('?');
// 로딩 숫자 초기값 0
let load = 0;

let int = setInterval(blurring, 30);    // 시간 0.03초에 한번씩 blurring 함수 실행

function blurring() {
  load++;
  //console.log(load);
  if (load > 99) { //로드가 숫자 100이상이면 clearInterval(인터벌객체이름) 으로 해제한다.
    clearInterval(int);
  }

  loadText.textContent = ` ?` //load 변수를 벡틱으로 표시한다.
  loadText.style.opacity = scale(load, 0, 100, 1, 0);  //(0~100) => (1,0) 으로 변경한다.
  bg.style.filter = `blur(${ ? }px)`; //(0~100) => (30,0) 으로 변경한다.
}

// 한 레인지(0~100)를 다른 레인지 (1~0) , 블러(30~0) 로 변환하는 함수 공식 => 스택오버플로우 검색
// https://stackoverflow.com/questions/10756313/javascript-jquery-map-a-range-of-numbers-to-another-range-of-numbers
const scale = (num, in_min, in_max, out_min, out_max) => {
  return ((num - in_min) * (out_max - out_min)) / (in_max - in_min) + out_min;
};

참고

자바스크립트 백틱(벡틱,템플릿 리터럴)

매핑

레인지 매핑

profile
픽서

0개의 댓글