본문 바로가기

Programming/HTML+CSS

[CSS] 8. 트랜지션과 애니메이션(1) - transform(변형) 4

CSS3 logo image

 

 

 

앞에서 살펴본 rotate( ) 함수와 관련해, 3D 회전의 예제도 좀 더 살펴보겠습니다. 

 

 

[CSS] 8. 트랜지션과 애니메이션(1) - transform(변형) 3

앞서 살펴본 transform 속성의 함수들을 이어서 살펴보도록 하겠습니다. [CSS] 8. 트랜지션과 애니메이션(1) - transform(변형) 2 앞서서 우리는 CSS에서 사용되는 transform 속성에 대해서 전반적으로 살펴

nozeroslope.tistory.com

 

 

아래 예제에서는 마우스 포인터를 올리면 x축, y축, z 축으로 각각 60도씩 회전(각각의 축에 방향벡터를  지정하고 60도 회전)하고, 여기에 트랜지션 효과까지 적용했습니다. 트랜지션은 추후 아티클에서 다룰 예정입니다. 

 

앞서서 설명했던 perspective 속성은, 각각의 요소의 부모 요소인 origin에 적용하였습니다. 

 

 

<!DOCTYPE html>
<head>
  <meta charset="UTF-8">
  <title>example</title>
  <style>
    #container{
      width:800px;
      margin:20px auto;
    }
    .origin {
      width: 100px;
      height: 100px;
      margin: 40px;
      float: left;
      border: 1px solid black;
      perspective: 200px;  
    }
    .origin > div {				
      width:100px;
      height:100px;
      background-color:orange;
      transition:all 3s;  
    }
    #rotatex:hover {
      transform: rotateX(60deg);  
    }
    #rotatey:hover {
      transform: rotateY(60deg);  
    }
    #rotatez:hover {
      transform: rotateZ(60deg);  
    }
    #rotatexyz:hover {
      transform: rotate3d(2.5, 1.2, -1.5, 60deg); 
    }
  </style>
</head>

<body>
  <div id="container">
    <div class="origin">
      <div id="rotatex"></div>
    </div>
    <div class="origin">
      <div id="rotatey"></div>
    </div>
    <div class="origin">		
      <div id="rotatez"></div>
    </div>
    <div class="origin">	
      <div id="rotatexyz"></div>	
    </div>
  </div>
</body>
</html>

 

위에서 부모 클래스인 'origin'에 perspective 속성을 적용했고, 각각의 id에 rotate( ) 함수를 부여했습니다. 

 

 

 

 


 

 

○ skew( ) 함수 - 요소 왜곡

 

skew( ) 함수를 사용하게 되면, 설정한 각도만큼 요소를 비틀어 줍니다. 이 때 x축 또는 y축을 기준으로 비틀게 되는데, x축의 경우 양수일 경우 x축을 기준으로 좌측으로 당겨 비틀게 됩니다. y축 값의 경우도 양수일 경우에는 좌측을 y축 기준으로 당겨서 비트는 형태가 됩니다. 

 

transform: skew(x, y)
transform: skewX(x)
transform: skewY(y)

 

참고로 해당 속성은 도형 요소 뿐만 아니라 텍스트에서도 적용이 가능합니다. 

 

      #skewx:hover {
        transform: skewX(30deg);  /* x축 기준으로 30도 비틀기 */
      }
      #skewy:hover {
        transform: skewY(15deg);  /* y축 기준으로 15도 비틀기 */
      }
      #skewxy:hover {
        transform: skew(-25deg, -15deg);  /* x축 기준으로 -25도, y축 기준으로 -15도 비틀기 */
      }

 

 

 

 

 

h1 {
    width:500px;
    height:80px;
    background-color:#222;
    color:#fff;
    font-weight:bold;			
    line-height: 80px;
    text-align: center;	 
    transform: skewX(30deg);  /* x축 기준으로 30도 비틀기 */				
}