html - rotated div with perspective css3 -


i have 45 deg rotated div. trying on hover rotate around y-axis using css3 perspective. dont hover want , becomes square when hovered. maintain rotated 45 deg @ end of animation.

here code:

<div class="perspective">    <a href="#" class="box">       <div class="innerbox">             text       </div>        </a> </div>  .perspective {     position:relative;     width:100px;     height:100px;     margin:200px 0px 0px 200px;     -moz-perspective: 300px;     -webkit-perspective: 300px;     -o-perspective: 300px;     -ms-perspective: 300px;     perspective: 300px; }  .box {     width:80px;     height:80px;         position:absolute;     top:0;     bottom:0;     left:0;     right:0;     margin:auto;     border: 5px solid #000;     -moz-transform: rotate(45deg);     -webkit-transform: rotate(45deg);     -o-transform: rotate(45deg);     -ms-transform: rotate(45deg);     transform: rotate(45deg);     -webkit-transition: 800ms ease;     -moz-transition: 800ms ease;     -ms-transition: 800ms ease;     -o-transition: 800ms ease;     transition: 800ms ease; }  .innerbox {     margin:30px 0px 0px 20px;     -moz-transform: rotate(-45deg);     -webkit-transform: rotate(-45deg);     -o-transform: rotate(-45deg);     -ms-transform: rotate(-45deg);     transform: rotate(-45deg);   }  .box:hover {     -moz-transform: rotatey(180deg);     -webkit-transform: rotatey(180deg);     -o-transform: rotatey(180deg);     -ms-transform: rotatey(180deg);     transform: rotatey(180deg);     -webkit-transition: 800ms ease;     -moz-transition: 800ms ease;     -ms-transition: 800ms ease;     -o-transition: 800ms ease;     transition: 800ms ease;  } 

i made example http://jsfiddle.net/o6mo0rjq/

you've rotated .box 45 degrees around z-axis. when specify new transform, initial rotation overwritten - new rotation on :hover, should specify original rotation. block declaration become:

.box:hover {     -moz-transform: rotatey(180deg) rotatez(45deg);     -webkit-transform: rotatey(180deg) rotatez(45deg);     -o-transform: rotatey(180deg) rotatez(45deg);     -ms-transform: rotatey(180deg) rotatez(45deg);     transform: rotatey(180deg) rotatez(45deg);     -webkit-transition: 800ms ease;     -moz-transition: 800ms ease;     -ms-transition: 800ms ease;     -o-transition: 800ms ease;     transition: 800ms ease; } 

here's jsfiddle demonstrate. (note: order in transform matters! because dictates order in rotations applied element, may give different results depending on transformations you're applying.)

hope helps! let me know if have questions.


Comments

Popular posts from this blog

Email notification in google apps script -

c++ - Difference between pre and post decrement in recursive function argument -

javascript - IE11 incompatibility with jQuery's 'readonly'? -