CSS Cube는 변환 후 초기 상태로 되돌아갑니다.

mokko211

저는 CSS 전문가가 아니며 CSS와 HTML을 사용하여 호버링 할 때 회전하는 큐브를 만들기 위해 다른 튜토리얼 소스를 따랐습니다.

마우스를 올리면 큐브가 이동하고 회전합니다. 그러나 더 이상 활성화되지 않은 경우 큐브를 원래 위치로 되돌리고 싶습니다. 이것이 어떻게 달성 될 수 있습니까?

다음은 코드입니다.

HTML

.wrap {
  -webkit-perspective: 800px;
  perspective: 800px;
  -webkit-perspective-origin: 50% 100px;
  perspective-origin: 50% 100px;
  float: left;
  margin-right: 3.5px;
  -webkit-transition: 1s ease-in-out;
  -moz-transition: 1s ease-in-out;
  -o-transition: 1s ease-in-out;
}
.cube {
  position: relative;
  width: 80px;
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
  margin: 0 auto;
  margin-top: 30px;
  -webkit-animation: spin 3s infinite linear;
  animation: spin 3s infinite linear;
  -webkit-animation-play-state: paused;
  animation-play-state: paused;
}
.cube div {
  position: absolute;
  width: 50px;
  height: 50px;
}
.back {
  transform: translateZ(0px) rotateY(180deg);
  background: #057e98;
  opacity: 0.8;
}
.right {
  transform: rotateY(-270deg) translateX(0px);
  transform-origin: top right;
  background: #16a8b8;
  opacity: 0.8;
}
.left {
  transform: rotateY(270deg) translateX(0px);
  transform-origin: center left;
  background: #c25e28;
  opacity: 0.8;
}
.top {
  transform: rotateX(-90deg) translateY(-50px);
  -webkit-transform-origin: top center;
  transform-origin: top center;
  background: #c25e28;
  opacity: 0.8;
}
.bottom {
  transform: rotateX(90deg) translateY(0px);
  transform-origin: bottom center;
  background: blue;
  opacity: 0.8;
}
.front {
  transform: translateZ(50px);
  background: #f47a2d;
  opacity: 0.8;
}
@-webkit-keyframes spin {
  from {
    -webkit-transform: rotateY(0);
    -webkit-transform-origin: 20% 50% 0;
  }
  to {
    -webkit-transform: rotateY(360deg);
    -webkit-transform-origin: 20% 50% 0;
  }
}
.cube:hover {
  -webkit-animation-play-state: running;
  animation-play-state: running;
}
.wrap:hover {
  -webkit-transform: translate(3em, 5em);
}
<div class="wrap">
  <div class="cube text-center">
    <div class="front">
    </div>
    <div class="back">
    </div>
    <div class="top">
    </div>
    <!--<div class="bottom"> 
          </div>-->
    <div class="left">
    </div>
    <div class="right">
    </div>
  </div>
</div>

<div class="wrap">
  <div class="cube text-center">
    <div class="front">
    </div>
    <div class="back">
    </div>
    <div class="top">
    </div>
    <!--<div class="bottom"> 
          </div>-->
    <div class="left">
    </div>
    <div class="right">
    </div>
  </div>
</div>

문제는 큐브가 회전을 멈출 때 현재 상태를 유지한다는 것입니다. 원래 위치와 상태로 되돌리고 싶습니다. 즉, '오른쪽'이 표시된 상태에서 회전이 멈춘 경우 '앞'이 표시된 상태로 원래 위치로 돌아 가야합니다.

끈적 끈적한 밥

다음과 같은 것이 필요하다고 생각합니다. 다음 CSS를 적용해야합니다.

animation-play-state: paused;마우스 오버하지 않을 때 애니메이션을 일시 중지했기 때문에 애니메이션 이 중지됩니다.

.wrap {
     -webkit-perspective: 800px;
        perspective: 800px;
        -webkit-perspective-origin: 50% 100px;
        perspective-origin: 50% 100px;
        float:left;
        margin-right: 3.5px;
        -webkit-transition: 1s ease-in-out;
        -moz-transition: 1s ease-in-out;
        -o-transition: 1s ease-in-out;    
    }

    .cube {
        position: relative;
        width: 80px;
        -webkit-transform-style: preserve-3d;
        transform-style: preserve-3d;
        margin: 0 auto;
        margin-top: 30px;        
       

    }

    .cube div {
        position: absolute;
        width: 50px;
        height: 50px;
    }

    .back {
        transform: translateZ(0px) rotateY(180deg);
        background: #057e98;
        opacity: 0.8;
    }
    .right {
        transform: rotateY(-270deg) translateX(0px);
        transform-origin: top right;
        background: #16a8b8;
        opacity: 0.8;
    }
    .left {
        transform: rotateY(270deg) translateX(0px);
        transform-origin: center left;
        background: #c25e28;
        opacity: 0.8;
    }
    .top {
        transform: rotateX(-90deg) translateY(-50px);
        -webkit-transform-origin: top center;
        transform-origin: top center;
        background: #c25e28;
        opacity: 0.8;
    }
    .bottom {
        transform: rotateX(90deg) translateY(0px);
        transform-origin: bottom center;
        background: blue;
        opacity: 0.8;
    }
    .front {
        transform: translateZ(50px);
        background: #f47a2d;
        opacity: 0.8;
    }

    @-webkit-keyframes spin {
        from { -webkit-transform: rotateY(0); -webkit-transform-origin: 20% 50% 0; }
        to { -webkit-transform: rotateY(360deg); -webkit-transform-origin: 20% 50% 0;}
    } 

@keyframes spin {
        from { transform: rotateY(0); transform-origin: 20% 50% 0; }
        to { transform: rotateY(360deg); transform-origin: 20% 50% 0;}
    } 

    .cube:hover {  
     -webkit-animation: spin 3s infinite linear;
        animation: spin 3s infinite linear;
        -webkit-animation-play-state: running;
        animation-play-state: running;
    }

    .wrap:hover{
        -webkit-transform: translate(3em,5em);
      transform: translate(3em,5em);
    }
<div class="wrap">
   <div class="cube text-center">
      <div class="front">
      </div>
      <div class="back">
      </div>
      <div class="top">
      </div>
      <!--<div class="bottom"> 
      </div>-->
      <div class="left">
      </div>
      <div class="right">
      </div>
  </div>
</div>

<div class="wrap">
   <div class="cube text-center">
      <div class="front">
      </div>
      <div class="back">
      </div>
      <div class="top">
      </div>
      <!--<div class="bottom"> 
      </div>-->
      <div class="left">
      </div>
      <div class="right">
      </div>
  </div>
</div>

도움이 되었기를 바랍니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

HTML 속성 값은 자바 스크립트로 변경 한 후 초기 값으로 돌아갑니다.

분류에서Dev

재부팅 후 키보드 레이아웃이 항상 기본값으로 되돌아갑니다-변경 방법?

분류에서Dev

필드 변수는 다른 필드 변수에 의해 인쇄 될 때 초기화 된 값으로 되돌아갑니다.

분류에서Dev

React 구성 요소는 URL 리디렉션시 항상 초기 상태로 돌아갑니다.

분류에서Dev

iOS에서 애니메이션보기는 segue를 수동으로 호출 한 후 원래 상태로 돌아갑니다.

분류에서Dev

Date.setHours는 아날로그 시계에서 유지되지 않고 몇 초 후에 현재 시간 렌더링으로 돌아갑니다.

분류에서Dev

CSS 반응 형-둘 다 지운 후 div가 정상으로 돌아갑니다.

분류에서Dev

CSS 애니메이션이 원래 상태로 되돌아갑니다.

분류에서Dev

상태 변경 후 초기 상태 반환

분류에서Dev

redux 상태는 페이지 다시로드 NEXT.JS 후 초기 상태가됩니다.

분류에서Dev

되돌리기 후 Gitlab이 초기 상태를 반환하지 않음

분류에서Dev

SVG 채우기 애니메이션이 초기 상태로 돌아갑니다.

분류에서Dev

AngularJS 앱이 자동으로 초기 상태로 돌아갑니다.

분류에서Dev

Hm-10 Bluetooth 모듈이 켜진 후 5 초 후에 발견 할 수없는 상태로 들어갑니다.

분류에서Dev

페이지로 돌아온 후에도 명시 적으로 변경 되었음에도 블록 상태는 동일합니다.

분류에서Dev

드래그 후 D3.js v4 요소가 초기 위치로 돌아갑니다.

분류에서Dev

master-datasources.xml 콘텐츠는 wso2server 5.9를 시작할 때 항상 초기 구성으로 되돌아갑니다.

분류에서Dev

모바일에서 작동하지 않는 웹 사이트-로드 후 0.2 초 후에 Google 검색으로 돌아갑니다.

분류에서Dev

프롤로그 재귀 술어는 종료 후 초기 상태로 리턴됩니다.

분류에서Dev

-10으로 변경 한 후 우선 순위가 20으로 돌아갑니다.

분류에서Dev

useState 후크 및 Typescript로 상태를 초기화하는 방법

분류에서Dev

투명하게 만든 후 기본 탐색 모음으로 돌아갑니다.

분류에서Dev

statemachine 상태는 항상 초기 상태가 아닌 마지막 상태를 반환합니다.

분류에서Dev

.text 값이 변경되면 UITextView 줄 간격이 기본값으로 돌아갑니다.

분류에서Dev

BASH는 주 기능으로 돌아갑니다.

분류에서Dev

BASH는 주 기능으로 돌아갑니다.

분류에서Dev

반응 상태는 항상 초기 값을 반환합니다.

분류에서Dev

Qt 5- QTextEdit가 기본 글꼴로 되돌아갑니다.

분류에서Dev

CSS 애니메이션이 끝난 후 요소를 즉시 초기 위치로 되 돌리는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    HTML 속성 값은 자바 스크립트로 변경 한 후 초기 값으로 돌아갑니다.

  2. 2

    재부팅 후 키보드 레이아웃이 항상 기본값으로 되돌아갑니다-변경 방법?

  3. 3

    필드 변수는 다른 필드 변수에 의해 인쇄 될 때 초기화 된 값으로 되돌아갑니다.

  4. 4

    React 구성 요소는 URL 리디렉션시 항상 초기 상태로 돌아갑니다.

  5. 5

    iOS에서 애니메이션보기는 segue를 수동으로 호출 한 후 원래 상태로 돌아갑니다.

  6. 6

    Date.setHours는 아날로그 시계에서 유지되지 않고 몇 초 후에 현재 시간 렌더링으로 돌아갑니다.

  7. 7

    CSS 반응 형-둘 다 지운 후 div가 정상으로 돌아갑니다.

  8. 8

    CSS 애니메이션이 원래 상태로 되돌아갑니다.

  9. 9

    상태 변경 후 초기 상태 반환

  10. 10

    redux 상태는 페이지 다시로드 NEXT.JS 후 초기 상태가됩니다.

  11. 11

    되돌리기 후 Gitlab이 초기 상태를 반환하지 않음

  12. 12

    SVG 채우기 애니메이션이 초기 상태로 돌아갑니다.

  13. 13

    AngularJS 앱이 자동으로 초기 상태로 돌아갑니다.

  14. 14

    Hm-10 Bluetooth 모듈이 켜진 후 5 초 후에 발견 할 수없는 상태로 들어갑니다.

  15. 15

    페이지로 돌아온 후에도 명시 적으로 변경 되었음에도 블록 상태는 동일합니다.

  16. 16

    드래그 후 D3.js v4 요소가 초기 위치로 돌아갑니다.

  17. 17

    master-datasources.xml 콘텐츠는 wso2server 5.9를 시작할 때 항상 초기 구성으로 되돌아갑니다.

  18. 18

    모바일에서 작동하지 않는 웹 사이트-로드 후 0.2 초 후에 Google 검색으로 돌아갑니다.

  19. 19

    프롤로그 재귀 술어는 종료 후 초기 상태로 리턴됩니다.

  20. 20

    -10으로 변경 한 후 우선 순위가 20으로 돌아갑니다.

  21. 21

    useState 후크 및 Typescript로 상태를 초기화하는 방법

  22. 22

    투명하게 만든 후 기본 탐색 모음으로 돌아갑니다.

  23. 23

    statemachine 상태는 항상 초기 상태가 아닌 마지막 상태를 반환합니다.

  24. 24

    .text 값이 변경되면 UITextView 줄 간격이 기본값으로 돌아갑니다.

  25. 25

    BASH는 주 기능으로 돌아갑니다.

  26. 26

    BASH는 주 기능으로 돌아갑니다.

  27. 27

    반응 상태는 항상 초기 값을 반환합니다.

  28. 28

    Qt 5- QTextEdit가 기본 글꼴로 되돌아갑니다.

  29. 29

    CSS 애니메이션이 끝난 후 요소를 즉시 초기 위치로 되 돌리는 방법은 무엇입니까?

뜨겁다태그

보관