메뉴 건너뛰기

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 18281
123 9 - 15 코드 개선 질문있습니다. 1 killchain 2021.06.17 130
122 setTimeout 질문드립니다. 3 file 웹프공부중 2020.06.09 130
121 357쪽 예제 8-2 윗부분 2 칼잡이최제잘 2018.02.12 130
120 예제에 필요한 그림이나 동영상 같은 자료파일은? 1 donghee 2017.09.15 130
119 연습문제 3장 5번 문제 1 seungjun 2023.10.26 129
118 버튼 태그에 대해서 궁금한게 있습니다!! 1 아이디가뭐였지 2021.03.22 128
117 423쪽, 예제9-20 1 사랑나눔 2019.06.27 127
116 예제5-9와 예제 5-14 3 궁금해요! 2018.04.20 127
115 Image 객체 2 초보 2020.05.14 126
114 안녕하세요? 186쪽 예제 4-13 대해서 물어봅니다. 1 file 김현우 2020.11.02 125
» 이벤트 관련 질문 3 왕초보 2020.05.24 125
112 인터넷 익스플로러 재질문이요 2 file 021 2020.04.13 125
111 챕터 3의 10번 문제 1 컴공과 입문 2018.03.20 125
110 예제3-8 1 새싹 2018.04.22 123
109 예제2-11 1 포도 2018.04.05 123
108 5장 실습문제 8번 2 쿠웨이트 2022.04.12 122
107 실습 문제 4장 4번 문제에 대해서 질문드립니다. 1 ㅇㅇ 2020.10.11 122
106 4장 9번 이론문제 2 궁금해요 2022.09.07 121
105 URL 과 IP 주소 2 tc0712 2021.09.14 120
104 실습문제 1 키보드 향기 2020.06.07 120
목록
Board Pagination Prev 1 ... 10 11 12 13 14 15 16 17 18 19 ... 21 Next
/ 21
위로