图片/图形

CSS3超酷图片3D旋转显示图片信息特效

阿里云


这是一款使用 CSS3 3D Transform 制作的超酷图片 3D 旋转显示图片信息特效。当用鼠标滑过图片时,图片会在垂直方向上做 3D 旋转,就像一个立方体向上旋转一样,底部的图片信息被显示出来。这个特效开始的时候只有图片是可见的,图片标题信息被隐藏起来。当用鼠标滑过图片时,图片会在垂直方向上做 3D 旋转,就像一个立方体向上旋转一样,底部的图片标题信息被显示出来。如下图:

这个特效中使用了两个面,一个是 front 面,一个是 bottom 面。front 面一幅图片,bottom 面是图片的信息。bottom 面通过旋转 X 轴-90 度来隐藏它,并修改 translateZ 的值使它在 front 面的下面:

有两个元素包裹着这两个面,最外层是 class 为 wrapper 的 div,它被用于设置 perspective。第二个是 class 为 item 的内层 div,它的作用是在鼠标滑过时沿 X 轴旋转 95 度显示图片标题信息并隐藏图片。

HTML 结构

  1. <div class="wrapper">  
  2.   <div class="item">  
  3.     <img src="images/contact.png">  
  4.     <span class="information">  
  5.       <strong>Contact Form</strong> The easiest way to add a contact form to your shop.  
  6.     </span>  
  7.   </div>  
  8. </div>  
  9.  
  10. <!-- to n wrapper -->
也想出现在这里?联系我们
创客主机

CSS 样式

每一个 wrapper 都要设置为 inline-block 的显示方式,并且透视值 perspective 为 4000 像素。item 的 transform-style 值为 preserve-3d,这样可以使它的子元素保存 3D 定位。同时还要添加一个 transition 来使鼠标滑过动画平滑过渡。

  1. .wrapper {  
  2.   display: inline-block;  
  3.   width: 310px;  
  4.   height: 100px;  
  5.   vertical-align: top;  
  6.   margin: 1em 1.5em 2em 0;  
  7.   cursor: pointer;  
  8.   position: relative;  
  9.   font-family: Tahoma, Arial;  
  10.   perspective: 4000px;  
  11. }  
  12.  
  13. .item {  
  14.   height: 100px;  
  15.   transform-style: preserve-3d;  
  16.   transition: transform .6s;  
  17. }

图片和图片标题信息也需要 transition,因为当鼠标滑过时,它们需要改变 border-radius 和 box-shadow 的值。这些效果都需要平滑过渡一下。

  1. .item img {  
  2.   display: block;  
  3.   position: absolute;  
  4.   top: 0;  
  5.   border-radius: 3px;  
  6.   box-shadow: 0px 3px 8px rgba(0,0,0,0.3);  
  7.   transform: translateZ(50px);  
  8.   transition: all .6s;  
  9.  
  10. }  
  11.  
  12. .item .information {  
  13.   display: block;  
  14.   position: absolute;  
  15.   top: 0;  
  16.   height: 80px;  
  17.   width: 290px;  
  18.   text-align: left;  
  19.   border-radius: 15px;  
  20.   padding: 10px;  
  21.   font-size: 12px;  
  22.   text-shadow: 1px 1px 1px rgba(255,255,255,0.5);  
  23.   box-shadow: none;  
  24.   background: linear-gradient(to bottombottom,rgba(236,241,244,1) 0%,rgba(190,202,217,1) 100%);  
  25.   transform: rotateX(-90deg) translateZ(50px);  
  26.   transition: all .6s;  
  27.  
  28. }

最后,当鼠标滑过图片时,item 元素被旋转,并改变图片和图片标题信息的 border-radius 和 box-shadow。

  1. .item:hover {  
  2.   transform: translateZ(-50px) rotateX(95deg);  
  3. }  
  4.  
  5. .item:hover img {  
  6.     box-shadow: none;  
  7.     border-radius: 15px;  
  8. }  
  9.  
  10. .item:hover .information {  
  11.     box-shadow: 0px 3px 8px rgba(0,0,0,0.3);  
  12.     border-radius: 3px;  
  13. }

到此这个图片 3D 旋转显示图片标题信息特效就完成了!这个特效只在支持 CSS3 3D transform 的浏览器中工作。插件中使用 modernizr 来检测浏览器的这个特性。

CSS3 超酷图片 3D 旋转显示图片信息特效

已有 476 人购买
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!