JavaScript/Javascript_Advanced

[JS]Mouse Event

MoZZANG 2022. 4. 20. 20:21
 <fieldset>
    <legend id="title">mousedown 및 mouseup이벤트(scale 및 색상변경)</legend>
    <div style="background-color:red;width:100px;height:100px"></div>
</fieldset>
<fieldset>
    <legend>mousedown 이벤트(위치이동)</legend>
    <div style="position:relative;left:0;top:0;background-color:red;width:100px;height:100px"></div>
</fieldset>
<fieldset>
    <legend>mouseover 및 mouseout이벤트</legend>
    <h4>테이블에 적용</h4>
    <table style="border-spacing:1px;background-color:gray;width:400px">
        <tr style="background-color:white">
            <th>번호</th>
            <th>제목</th>
            <th>작성자</th>
        </tr>
        <tr onmouseover="this.style.backgroundColor='green';" onmouseout="this.style.backgroundColor='white';"
            style="background-color:white">
            <td>1</td>
            <td>제목1입니다</td>
            <td>작성자1</td>
        </tr>
        <tr onmouseover="this.style.backgroundColor='green';" onmouseout="this.style.backgroundColor='white';"
            style="background-color:white">
            <td>2</td>
            <td>제목2입니다</td>
            <td>작성자2</td>
        </tr>
        <tr onmouseover="this.style.backgroundColor='green';" onmouseout="this.style.backgroundColor='white';"
            style="background-color:white">
            <td>3</td>
            <td>제목3입니다</td>
            <td>작성자3</td>
        </tr>
    </table>
    <h4>이미지에 적용</h4>
      <img src="../Images/1.jpg" alt="이미지" style="width:80px;height:60px;" />
</fieldset>

 

▲현재 body상태

 

 

 

 window.addEventListener('DOMContentLoaded',function(){
      var legend = document.querySelector('#title');
      var div1 = document.querySelector('fieldset:nth-child(1) > div');
      var div2 = document.querySelector('fieldset:nth-child(2) > div');

      var width = parseInt(div1.style.width);
      var height = parseInt(div1.style.height);
      var bgcolor = div1.style.backgroundColor;

      div1.onmousedown=function(e){
        //이벤트 핸들러안에서의 this는 이벤트가 발생한 객체 즉 e.target와 같다
        legend.innerHTML='mousedown이벤트 발생';
        //배경색 변경하고  스케일을 두배로
        this.style.backgroundColor='green';
        this.style.width = width * 2 +'px';
        this.style.height = height * 2 +'px';
      };
      div1.onmouseup=function(e){
        legend.innerHTML='mouseup이벤트 발생';
         //원래 배경색 및 스케일로 변경
         this.style.backgroundColor=bgcolor;
         this.style.width = width +'px';
         this.style.height = height  +'px';
      };
      var count=0;
      div2.onmousedown=function(){
        
        var timer=window.setInterval(function(){
            console.log(this);//window객체
            count++;
            if(count===5){
              clearInterval(timer);
              count=0;
            }
            var left = parseInt(div2.style.left);
            div2.style.left=left+50+'px';
        },300);
      };

      /*
        마우스 오버시에 2.jpg로 교체
        마우스 아웃시에는 다시 1.jpg로 교체
        마우스 다운시에는 현재 이미지 크기의 2배로 변경
        마우스 업시에는 다시 원래 이미지 크기로 변경
      */
     var img = document.querySelector('fieldset:nth-child(3) > img');
     var imgWidth=parseInt(img.style.width);
     var imgHeight=parseInt(img.style.height);

     img.onmouseover = function(){
      this.src='../Images/2.jpg';
     };
     img.onmouseout = function(){
      this.src='../Images/1.jpg';
     };
     img.onmousedown=function(){
       this.style.width =imgWidth*2+'px';
       this.style.height =imgHeight*2+'px';
     };
     img.onmouseup=function(){
       this.style.width =imgWidth+'px';
       this.style.height =imgHeight+'px';
     };


    });

 

'JavaScript > Javascript_Advanced' 카테고리의 다른 글

[JS]Focus Event  (0) 2022.04.20
[JS}Keyboard Event  (0) 2022.04.20
[JS]CSS Control by JS  (0) 2022.04.20
[JS]DATE객체 ~ 17까지 포스팅 안함(못함)  (0) 2022.04.20
[JS]Date 객체  (0) 2022.04.19