메뉴 건너뛰기

2020.05.24 19:03

이벤트 관련 질문

조회 수 125 댓글 3

제가 원하는 색깔로 변경했을 때 사진의 모서리색상을 바꿀려 했는데 적용이 되지않습니다.

제가 선택한 색으로 바뀌게 할려면 무엇을 추가해야 하는지 궁금합니다.

<!DOCTYPE html>
<html>
<head><title>연습</title>
     <script>
   
        function change(obj){
            var color = document.getElementById("colorInput").value;
          document.body.style.borderColor= color;       
        }
        
    </script>
    </head>
    <body>
    <h3>연습</h3>
        <hr>
        <form>
        <input type="color" id="colorInput"
                    onchange="change(this)">
       <img style="border: 20px solid blue" src="park/mango.jpg" onchange="bgchange(this)"
              width="640" height="360">
           
        </form>
       
    </body>
</html>

?
  • ?
    관리자 2020.05.24 23:51

    3가지 문제에 대해 알려드립니다.
    1. <img style="border: 20px solid blue" src="park/mango.jpg" onchange="bgchange(this)" 에서
    onchange() 는 무슨 용도로 하였나요?
    --> 필요없는 것 같으니 지우는 것이 좋겠습니다.

    2. function change(obj){
    var color = document.getElementById("colorInput").value;
    document.body.style.borderColor= color;
    }
    이 함수의 의미에 대해서 잘 알고 있어야 문제를 풀 수 있습니다.
    --> 이 함수의 매개변수로 사용한 obj를 함수에서 전혀 이용하고 있지 않습니다. obj가 바로 document.getElementById("colorInput")가 리턴하는 객체와 동일합니다.
    그러므로 이 함수는 다음과 같이 고쳐야 합니다.

    function change(obj){
    var color = obj.value;
    document.body.style.borderColor= color;
    }

    그리고 이 함수 내에 document.body.style.borderColor= color; 는 혹시 무슨 뜻으로 사용하였나요?
    이것은 body 태그, 그러니까 웹 페이지 전체의 테두리 색을 color로 지정하겠다는 뜻입니다. 이 문제와 아무 상관없는 코드입니다. 이 코드로 지워야 합니다.

    3. document.getElementById("colorInput") 에서 getElementById() 함수의 의미를 잘 알고 사용해야 합니다.
    document.getElementById("colorInput")의 의미는 id=colorInput라는 속성을 가진 태그를 찾아 리턴해달라는 코드입니다. 이 책의 358페이지를 등을 공부하면 분명해질것니다.

    이제 이 질문의 각 부분을 분석하였습니다. 

     

    그러면 이제 답을 찾아가 봅시다.

    코드를 다음과 같이 고쳐야 합니다.

    1. <img> 태그에 "id=myimg" 속성을 넣고,
    2. 함수 change()에서 id=myimg인 태그를 찾고 그 DOM 객체의 스타일에서 외곽선의 색을 바꾸는 코드를 삽입해야 합니다.
    document.getElementById("myimg").style.borderColor= color;

    결과적으로 질문한 분이 원하는 것은 다음 코드입니다.
    <!DOCTYPE html>
    <html>
    <head><title>연습</title>
    <script>

    function change(obj){
    var color = obj.value;
    document.getElementById("myimg").style.borderColor= color;
    }

    </script>
    </head>
    <body>
    <h3>연습</h3>
    <hr>
    <form>
    <input type="color" id="colorInput"
    onchange="change(this)">
    <img id="myimg" style="border: 20px solid blue" src="park/mango.jpg"
    width="640" height="360">

    </form>

    </body>
    </html>

    * Q&A에 올린 질문과 저의 답을 지우지 말아 주시기 바랍니다.

  • ?
    왕초보 2020.05.25 00:22
    제가 아직 개념을 완벽하게 이해하지 못하고 자꾸자꾸 시도하는것 같습니다. 제가 기본적인 내용에 대해 더 자세하게 배우고 이해하고 싶은데요 혹시 추천하시는 도서나 공부방법에 대해 조언해주시면 감사하겠습니다.
  • ?
    관리자 2020.05.25 00:36

    그렇군요.
    여러 시도를 하는 것은 정말이지 좋은 학습 태도입니다. 열정이 커다는 뜻이죠.
    왕초보 님의 열정이 학습의 열매로 맺어지기를 바랍니다.

    책을 바꾼다고 기본 지식이 늘 것 같지는 않습니다.
    혹시 명품 웹 프로그래밍 책을 교재로 공부하고 있는 학생이라면, 책을 차분히 읽고 예제들을 하나씩 자기 손으로 만드는 연습이 우선입니다.
    그리고 한 장이 끝나면 연습문제와 실습문제를 모두 풀면서 자신의 지식을 확인하고 완성하는 것입니다.
    공부는 서둘러서 되지 않습니다. 약간의 지속과 인내의 시간이 꼭 필요합니다.

    지금 여기 올린 작은 질문이 CSS 스타일, 간단하지만 함수 등을 만들 수 있는 자바스크립트 언어, DOM 객체, 이벤트 리스너 등 사실상 여러 지식을 필요로 합니다.
    지금 제가 나열한 지식을 모두 알아야 만들 수 있어요. 그리고 이들에 대한 설명은 어떤 책보다 이 책에 잘 나와 있습니다.
    질문하고 잠깐 정답을 얻을 수는 있어도 또 다른 문제는 풀 수 없을지도 모릅니다.

    이 사이트의 책, 명품 HTML5+CSS3+Javascript 웹프로그래밍 책이면 충분하고 훌륭함니다. 본문을 읽고 연습문제를 풀면서
    이해되지 않는 것들은 주저 없이 질문을 올리면 자세한 설명을 드리겠습니다.

    그럼.


QnA

공부하면서 궁금했던 것을 질문해보세요.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 읽어주세요! 연습문제 및 실습문제 정답 공개에 관한 공지입니다. file 관리자 2017.06.20 18263
363 이미지파일 6 스물다섯 2022.04.08 111
362 4장 171쪽 2 chu 2022.04.04 57
361 html5 태그 검사 2 열공이 2022.03.10 94
360 2장 실습문제 1번 질문드립니다! 1 망나뇽 2022.03.06 168
359 안녕하세요 관리자님 실습 문제 짝수본 zip 파일은 제공 되지 않는 건가요? 1 문의 2022.02.25 210
358 r/w는 무슨 뜻인가요? 1 ㅇㅁㅇㅈ 2021.12.22 392
357 웹 워커 13-7 결과 55가 출력되지 않습니다. 1 chg115 2021.12.03 101
356 연습문제의 미디어 파일 1 부산 2021.11.25 133
355 document.getElementBy~ 2 tc0712 2021.11.22 108
354 윈도우 브라우저와 윈도우 탭 2 tc0712 2021.11.22 57
353 5장 내용 중 궁금한 점 있습니다! 1 file 2021.10.15 215
352 5장 5-(2) 질문 있습니다! 1 2021.10.14 117
351 form 태그와 웹서버 1 tc0712 2021.09.29 103
350 HTML5+CSS3+Javascript 웹 프로그래밍[수정판] 4 file Jenny 2021.09.25 516
349 웹서버와 클라이언트 2 tc0712 2021.09.14 95
348 URL 과 IP 주소 2 tc0712 2021.09.14 120
347 태그와 속성 2 tc0712 2021.09.08 72
346 캔버스 관련 질문 1 원그리기 2021.08.22 101
345 웹 사이트 접속 질문 있습니다. 1 초심자 2021.08.21 131
344 질문 있습니다. 2 2021.08.19 134
목록
Board Pagination Prev 1 ... 2 3 4 5 6 7 8 9 10 ... 21 Next
/ 21
위로