CSS3鼠标悬停带视差的3d图片翻转效果

所属分类:UI,媒体-悬停,图片展示

 30027  381  查看评论 (0)
分享到微信朋友圈
X
CSS3鼠标悬停带视差的3d图片翻转效果 ie兼容10

HTML结构

该CSS3 3d图片翻转效果的基本HTML结构如下:

<div class="wrapper">
    <div class="cols">
        <div class="col" ontouchstart="this.classList.toggle('hover');">
            <div class="container">
                <div class="front" style="background-image: url(img/1.png)">
                    <div class="inner">
                        图片标题
                        <span>图片简介</span>
                    </div>
                </div>
                <div>
                    <div>
                        图片背面描述文字信息
                    </div>
                </div>
            </div>
        </div>
        ......
    </div>
</div>

CSS样式

该CSS3 3d图片翻转效果的CSS样式如下:

*{
 margin: 0;
 padding: 0;
 -webkit-box-sizing: border-box;
         box-sizing: border-box;
}
.wrapper{
 width: 90%;
 margin: 0 auto;
 max-width: 80rem;
}
.cols{
 display: -webkit-box;
 display: -ms-flexbox;
 display: flex;
 -ms-flex-wrap: wrap;
     flex-wrap: wrap;
 -webkit-box-pack: center;
     -ms-flex-pack: center;
         justify-content: center;
}
.col{
 width: calc(25% - 2rem);
 margin: 1rem;
 cursor: pointer;
}
.container{
 -webkit-transform-style: preserve-3d;
         transform-style: preserve-3d;
 -webkit-perspective: 1000px;
         perspective: 1000px;
}
.front,
.back{
 background-size: cover;
 background-position: center;
 -webkit-transition: -webkit-transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
 transition: -webkit-transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
 -o-transition: transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
 transition: transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
 transition: transform .7s cubic-bezier(0.4, 0.2, 0.2, 1), -webkit-transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
 -webkit-backface-visibility: hidden;
         backface-visibility: hidden;
 text-align: center;
 min-height: 280px;
 height: auto;
 border-radius: 10px;
 color: #fff;
 font-size: 1.5rem;
}
.back{
 background: #cedce7;
 background: -webkit-linear-gradient(45deg,  #cedce7 0%,#596a72 100%);
 background: -o-linear-gradient(45deg,  #cedce7 0%,#596a72 100%);
 background: linear-gradient(45deg,  #cedce7 0%,#596a72 100%);
}
.front:after{
 position: absolute;
   top: 0;
   left: 0;
   z-index: 1;
   width: 100%;
   height: 100%;
   content: '';
   display: block;
   opacity: .6;
   background-color: #000;
   -webkit-backface-visibility: hidden;
           backface-visibility: hidden;
   border-radius: 10px;
}
.container:hover .front,
.container:hover .back{
   -webkit-transition: -webkit-transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
   transition: -webkit-transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
   -o-transition: transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
   transition: transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
   transition: transform .7s cubic-bezier(0.4, 0.2, 0.2, 1), -webkit-transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
}
.back{
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
}
.inner{
   -webkit-transform: translateY(-50%) translateZ(60px) scale(0.94);
           transform: translateY(-50%) translateZ(60px) scale(0.94);
   top: 50%;
   position: absolute;
   left: 0;
   width: 100%;
   padding: 2rem;
   -webkit-box-sizing: border-box;
           box-sizing: border-box;
   outline: 1px solid transparent;
   -webkit-perspective: inherit;
           perspective: inherit;
   z-index: 2;
}
.container .back{
   -webkit-transform: rotateY(180deg);
           transform: rotateY(180deg);
   -webkit-transform-style: preserve-3d;
           transform-style: preserve-3d;
}
.container .front{
   -webkit-transform: rotateY(0deg);
           transform: rotateY(0deg);
   -webkit-transform-style: preserve-3d;
           transform-style: preserve-3d;
}
.container:hover .back{
 -webkit-transform: rotateY(0deg);
         transform: rotateY(0deg);
 -webkit-transform-style: preserve-3d;
         transform-style: preserve-3d;
}
.container:hover .front{
 -webkit-transform: rotateY(-180deg);
         transform: rotateY(-180deg);
 -webkit-transform-style: preserve-3d;
         transform-style: preserve-3d;
}
.front .inner p{
 font-size: 2rem;
 margin-bottom: 2rem;
 position: relative;
}
.front .inner p:after{
 content: '';
 width: 4rem;
 height: 2px;
 position: absolute;
 background: #C6D4DF;
 display: block;
 left: 0;
 right: 0;
 margin: 0 auto;
 bottom: -.75rem;
}
.front .inner span{
 color: rgba(255,255,255,0.7);
 font-family: 'Montserrat';
 font-weight: 300;
}
@media screen and (max-width: 64rem){
 .col{
   width: calc(33.333333% - 2rem);
 }
}
@media screen and (max-width: 48rem){
 .col{
   width: calc(50% - 2rem);
 }
}
@media screen and (max-width: 32rem){
 .col{
   width: 100%;
   margin: 0 0 2rem 0;
 }
}


相关插件-悬停,图片展示

jQuery鼠标悬停图片分享按钮动画

这款jQuery插件可以实现鼠标滑过图片时在图片上方创建任意的元素,包括分享按钮和图片文字描述等。这些按钮和文字可以悬浮在图片的任意位置,同时你也可以自己定义这些图片上方的元素出现时的动画特效。
  悬停
 40271  499

纯CSS3 可感知方向 3D盒子翻转动画(原创)

感应鼠标进入方向,向不同的方向翻转
  悬停
 23926  336

12种CSS3 hover效果插件

非常好看实用的CSS3的hover效果, 用transition 、amination 制造好看及实用的交互体验
  悬停
 59767  488

CSS3圆形图片鼠标经过旋转效果

CSS3圆形图片鼠标经过旋转效果,图片上有简短标题和说明,兼容主流浏览器
  悬停
 32810  424

讨论这个项目(0)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
取消回复