如何在CSS中添加螺旋效果对翻转效果?

时间:2015-12-03 12:09:00

标签: css3 css-transforms

我已经创建了这张翻转卡,但我想知道是否可以在翻转时添加CSS螺旋效果,或者像扭曲图像一样添加效果。

这里我有翻转卡演示 http://jsfiddle.net/7k1sf8qk/

这是我的CSS代码

.flip-container {
    -webkit-perspective: 1000;
    -moz-perspective: 1000;
    -o-perspective: 1000;
    perspective: 1000;
}

.flip-container, .front, .back {
    width: 970px;
    height: 250px;
}

.flipper {
    -moz-transform: perspective(1000px);
    -moz-transform-style: preserve-3d;

    position: relative;
}

.front, .back {
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -o-backface-visibility: hidden;
    backface-visibility: hidden;

    -webkit-transition: 0.6s;
    -webkit-transform-style: preserve-3d;

    -moz-transition: 0.6s;
    -moz-transform-style: preserve-3d;

    -o-transition: 0.6s;
    -o-transform-style: preserve-3d;

    -ms-transition: 0.6s;
    -ms-transform-style: preserve-3d;

    transition: 0.6s;
    transform-style: preserve-3d;


    position: absolute;
    top: 0;
    left: 0;
}

.back {
    -webkit-transform: rotateX(-180deg);
    -moz-transform: rotateX(-180deg);
    -o-transform: rotateX(-180deg);
    -ms-transform: rotateX(-180deg);
    transform: rotateX(-180deg);
}

.flip-container:hover .back, .flip-container.hover .back {
    -webkit-transform: rotateX(0deg);
    -moz-transform: rotateX(0deg);
    -o-transform: rotateX(0deg);
    -ms-transform: rotateX(0deg);
    transform: rotateX(0deg);
}

.flip-container:hover .front, .flip-container.hover .front {
    -webkit-transform: rotateX(180deg);
    -moz-transform: rotateX(180deg);
    -o-transform: rotateX(180deg);
    transform: rotateX(180deg);
}


.front {
    z-index: 2;
}

1 个答案:

答案 0 :(得分:1)

很遗憾,您无法使用当前的标记重新创建此效果。

我建议将图像设置为大量设置高度HTML元素的背景,然后您可以设置内联样式以使用JavaScript来管理螺旋效果。

我已经制作了一个快速的代码,希望能够表明我的意思:

http://codepen.io/jazibobs/pen/wMvwKP

body {
  background: #555;
}

ul {
  background: #fff;
  width: 600px;
  height: 600px;
  margin: 0 auto;
  list-style: none;
  padding: 0;
}
ul li {
  background-image: url(http://placekitten.com/g/600/600);
  height: 200px;
  background-size: 100% auto;
  -webkit-transition: -webkit-transform 2s ease;
          transition: transform 2s ease;
}
ul li:nth-child(2) {
  background-position: 0 -200px;
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
ul li:nth-child(3) {
  background-position: 0 -400px;
  -webkit-transition-delay: 0.4s;
          transition-delay: 0.4s;
}
ul:hover li {
  -webkit-transform: rotateY(180deg);
          transform: rotateY(180deg);
}
<ul>
  <li></li>
  <li></li>
  <li></li>
</ul>