메뉴 건너뛰기

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
243 7장 실습문제 8번에서 질문입니다 1 JAVAscript공부중이에요 2020.05.27 408
» 이벤트 관련 질문 3 왕초보 2020.05.24 125
241 예제 4-14 질문이욤 2 file 코딩딩 2020.05.17 113
240 Image 객체 2 초보 2020.05.14 126
239 76페이지 1 ramoss 2020.05.13 44
238 예제 4-11 질문합니다. 2 초보 2020.05.04 88
237 list type 질문이요 2 file 021 2020.05.03 107
236 168p 예제4-8 질문 2 file 그냥초보 2020.05.01 80
235 185쪽 질문있습니다.. 3 file ㅇㅇ 2020.04.30 62
234 css3로 웹 페이지 꾸미기 3 file ㅇㅇ 2020.04.30 109
233 예제4-5 질문드립니다. 3 초보 2020.04.27 97
232 그림이 안떠요(실습문제 4장 7번) 2 file 초보자 2020.04.27 684
231 이미지를 어떻게 나오게 하나요? 1 나나 2020.04.26 78
230 3장 실습문제 2번에 쓰이는 이미지 파일은 어디에서 받을 수 있나요? 1 dpdms0926 2020.04.22 180
229 예제 5-3 220page 2 호기심 2020.04.16 355
228 94p 그림2-4 질문 2 file 그냥초보 2020.04.15 55
227 1장 그림1-14 2 file 000 2020.04.14 119
226 4장 연습문제 8번 질문이요 4 file 코딩은코딩코딩해 2020.04.14 253
225 인터넷 익스플로러 재질문이요 2 file 021 2020.04.13 125
224 인터넷익스플로러 질문이요 1 file 021 2020.04.10 48
목록
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 ... 21 Next
/ 21
위로