回答編集履歴
1
調整
    
        answer	
    CHANGED
    
    | @@ -29,4 +29,39 @@ | |
| 29 29 | 
             
            .click2{ transform: rotate(360deg);transition: 1s;}
         | 
| 30 30 | 
             
            </style>
         | 
| 31 31 | 
             
            <div class="rotate-box">testtest</div>
         | 
| 32 | 
            +
            ```
         | 
| 33 | 
            +
            # 調整
         | 
| 34 | 
            +
            アニメーション中はクリックできないような仕様を追記しました
         | 
| 35 | 
            +
            ```html
         | 
| 36 | 
            +
            <script>
         | 
| 37 | 
            +
            document.addEventListener('click',e=>{
         | 
| 38 | 
            +
              const t=e.target;
         | 
| 39 | 
            +
              if(t.matches('.rotate-box:not(.running)')){
         | 
| 40 | 
            +
                t.classList.toggle('click1');
         | 
| 41 | 
            +
                t.classList.toggle('click2',!t.classList.contains('click1'));
         | 
| 42 | 
            +
              }
         | 
| 43 | 
            +
            });
         | 
| 44 | 
            +
            addEventListener("transitionstart", e=>{
         | 
| 45 | 
            +
              const t=e.target;
         | 
| 46 | 
            +
              t.classList.add('running');
         | 
| 47 | 
            +
            });
         | 
| 48 | 
            +
            document.addEventListener("transitionend",e=> {
         | 
| 49 | 
            +
              const t=e.target;
         | 
| 50 | 
            +
              t.classList.remove('running');
         | 
| 51 | 
            +
              t.classList.remove('click2');
         | 
| 52 | 
            +
            });
         | 
| 53 | 
            +
            </script>
         | 
| 54 | 
            +
            <style>
         | 
| 55 | 
            +
            .rotate-box {
         | 
| 56 | 
            +
              display: block;
         | 
| 57 | 
            +
              width: 100px;
         | 
| 58 | 
            +
              height: 100px;
         | 
| 59 | 
            +
              border: 1px solid #000;
         | 
| 60 | 
            +
              margin: 50px auto;
         | 
| 61 | 
            +
              cursor: pointer;
         | 
| 62 | 
            +
            }
         | 
| 63 | 
            +
            .click1{ transform: rotate(180deg);transition: 1s;}
         | 
| 64 | 
            +
            .click2{ transform: rotate(360deg);transition: 1s;}
         | 
| 65 | 
            +
            </style>
         | 
| 66 | 
            +
            <div class="rotate-box">testtest</div>
         | 
| 32 67 | 
             
            ```
         | 
