메뉴 건너뛰기

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 18304
383 13-7 예제 1 궁금이 2020.06.14 146
382 13장 실습문제 5번 질문입니다. 3 웹린 2022.12.04 111
381 14장 소스코드 제공에 대해 질문합니다. 1 질문자 2021.05.25 176
380 14장 예제 사라진 건가요 1 ... 2021.03.09 4078
379 168p 예제4-8 질문 2 file 그냥초보 2020.05.01 80
378 185쪽 질문있습니다.. 3 file ㅇㅇ 2020.04.30 62
377 1장 1 ㅇㄹㅇㄹ 2019.06.07 232
376 1장 10번 문제 답 문의 MIKAEL 2022.12.07 71
375 1장 test1, 2, 3 파일 2 열공중 2020.03.07 542
374 1장 그림1-14 2 file 000 2020.04.14 119
373 2-21 예제 3 file Iwanteating 2021.03.25 157
372 2-26 오디오 삽입 모바일 문의 2 한수연 2017.12.12 101
371 207p 4장 실습문제 3번 질문 1 file 웹개발초보 2019.10.19 276
370 264p 문의 1 . 2020.10.15 65
369 282p. 예제 6-14 출력 문의 드려요 1 file . 2020.10.15 82
368 2장 실습문제 1번 질문드립니다! 1 망나뇽 2022.03.06 169
367 2장 예제 2-11과 관련하여 질문 드립니다. 1 조근석 2017.04.30 398
366 2장 예제 2-24에 관한 질문입니다. 1 최원석 2018.01.29 191
365 2장 오디오 실습문제에 대해서 질문이있습니다 1 ㅇㅇㅇ 2019.09.19 213
364 2장 오픈 챌린지 웹페이지 음악연주 질문있습니다. 1 초보자 2020.03.29 195
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 21 Next
/ 21
위로