ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Javascript30 - Playing WITH CSS VARIABLES AND JS
    Javascript 2021. 6. 18. 21:34

    Playing WITH CSS VARIABLES AND JS


     

    요구사항

    1. 사진의 경계, 블러, 경계의 색을 조절할 수 있어야 한다.

    2. 경계,블러는 마우스 클릭후 이동하는 중에도 변해야 한다.


    1. HTML 구성

    - 컨트롤 박스 안에 패딩,블러,색상 조절하는 부분이 있다.

    - 가로 정렬을 위해 span태그 사용

        <h1>Update CSS Variables with <span class="JS">JS</span></h1>
        <div class="control-box">
            <span class="spacing">
                Spacing:
                <input type="range" value="20" min="0" max="100">
            </span>
            <span class="blur">
                Blur:
                <input type="range" value="0" min="0" max="20">
            </span>
            <span class="base-color">
                Base color
                <input type="color" value="#018DED">
            </span>
        </div>
        <img src="https://source.unsplash.com/7bwQXzbF6KE/800x500">

     

    2. Javascript 구성

    - 이벤트리스너로 mousemove,click 이벤트 감지해서 setSpacing 호출, 클릭후 움직이면 변하는 인풋값을 mousemove가 감지한다.

    - setSpacing 함수는 슬라이드바 클릭으로 변한 인풋값을 불러와서 경계의 색과 크기, 블러, JS의 색을 변경한다.

        <script>
            const inputs = document.querySelectorAll('.control-box input');
            const controlBox = document.querySelector('.control-box');
            const spacing = document.querySelector('.spacing');
            const spacingInput = spacing.querySelector('input');
            const baseColor = document.querySelector('.base-color');
            const basecolorInput = baseColor.querySelector('input');
            const blur = document.querySelector('.blur');
            const blurInput = blur.querySelector('input');
            const img = document.querySelector('img');
            const JS = document.querySelector('.JS');
            function setSpacing() {
                img.style.border=`${spacingInput.value}px solid ${basecolorInput.value}`;
                img.style.filter = `blur(${blurInput.value}px)`;
                JS.style.color = `${basecolorInput.value}`;
            }
            controlBox.addEventListener('click',setSpacing);
            inputs.forEach(input => input.addEventListener('mousemove', setSpacing));
        </script>

    'Javascript' 카테고리의 다른 글

    Javascript30 - Flex Panels Image Gallery  (0) 2021.06.21
    Javascript30 - Array Cardio Day 1  (0) 2021.06.20
    Javascript30 - CSS + JS CLOCK  (0) 2021.06.17
    Javascript30 - DRUM KIT  (0) 2021.06.16
    koan 풀기  (0) 2021.06.06
Designed by Tistory.