jquery实现的3D缩略图悬停效果

来源:互联网 发布:mac wav 转 mp3 编辑:程序博客网 时间:2024/06/07 23:39

今天我们要告诉你如何创建一些令人兴奋的3D使用CSS3和jQuery悬停效果。这一想法的灵感来自于凉爽的悬停效果,再给客户做网站的时候用的这样的效果,今天就共享出来

在这个效果当中,我将使用的thumbails,就会发现一些更多的信息悬停。将创建一个使用jQuery的结构,将允许的图象出现折叠或弯曲,当他悬停时候。为悬停效果,我们将使用CSS 3D变换。效果如下  演示     下载

鼠标经过时候

看看火狐下面的效果,鼠标经过的时候展示出3D变换效果

 

thumbnail 的DIV代码如下所示

 

复制代码
 1 <div id="grid" class="main"> 2    3     <div class="view"> 4   5         <div class="view-back"> 6             <span data-icon="A">566</span> 7             <span data-icon="B">124</span> 8             <a href="http://www.flickr.com/photos/ag2r/5439506585/in/photostream"></a> 9         </div>10  11         <img src="images/1.jpg" />12  13     </div>14  15     <div class="view">16  17     <!-- ... -->18  19     </div>20  21     <!-- ... -->22      23 </div>
复制代码

每个缩略图的背视图部分,我们要为每个背景图部分创建与使用JavaScript 视图的结构如下:

复制代码
 1 <div class="view"> 2   3     <div class="view-back"> 4         <!-- ... --> 5     </div> 6       7     <div class="slice s1" style="background-image: url(images/1.jpg); "> 8         <span class="overlay"></span> 9          10         <div class="slice s2" style="background-image: url(images/1.jpg); ">11             <span class="overlay"></span>12              13             <div class="slice s3" style="background-image: url(images/1.jpg); ">14                 <span class="overlay"></span>15                  16                 <div class="slice s4" style="background-image: url(images/1.jpg); ">17                     <span class="overlay"></span>18                      19                     <div class="slice s5" style="background-image: url(images/1.jpg); ">20                         <span class="overlay"></span>21                     </div><!-- /s5 -->22                  23                 </div><!-- /s4 -->24                      25             </div><!-- /s3 -->26                  27         </div><!-- /s2 -->28              29     </div><!-- /s1 -->30      31 </div><!-- /view -->
复制代码

每个背景图鼠标移动的时候都会有各自的形象和作为它的背景图片,因为我们有一个背景嵌套的结构,这将使我们能够控制的他的效果。此外,我们将添加一个覆盖跨度,javascript代码如下

复制代码
 1 $.fn.hoverfold = function( args ) { 2   3     this.each( function() { 4       5         $( this ).children( '.view' ).each( function() { 6           7             var $item   = $( this ), 8                 img     = $item.children( 'img' ).attr( 'src' ), 9                 struct  = '<div class="slice s1">';10                     struct  +='<div class="slice s2">';11                         struct  +='<div class="slice s3">';12                             struct  +='<div class="slice s4">';13                                 struct  +='<div class="slice s5">';14                                 struct  +='</div>';15                             struct  +='</div>';16                         struct  +='</div>';17                     struct  +='</div>';18                 struct  +='</div>';19                  20             var $struct = $( struct );21              22             $item.find( 'img' ).remove().end().append( $struct ).find( 'div.slice' ).css( 'background-image', 'url(' + img + ')' ).prepend( $( '<span class="overlay" ></span>' ) );23              24         } );25          26     });27  28 };
复制代码

CSS代码如下

复制代码
 1 .view { 2     width: 316px; 3     height: 216px; 4     margin: 10px; 5     float: left; 6     position: relative; 7     border: 8px solid #fff; 8     box-shadow: 1px 1px 2px rgba(0,0,0,0.05); 9     background: #333;10     perspective: 500px;11 }
复制代码

3D过度效果CSS代码

复制代码
1 .view .slice{2     width: 60px;3     height: 100%;4     z-index: 100;5     transform-style: preserve-3d;6     transform-origin: left center;7     transition: transform 150ms ease-in-out;8      9 }
复制代码

描述部分的CSS代码

复制代码
1 .view div.view-back{2     width: 50%;3     height: 100%;4     position: absolute;5     right: 0;6     background: #666;7     z-index: 0;8 }
复制代码

前台风格跨度的代码

复制代码
 1 .view-back span { 2     display: block; 3     float: right; 4     padding: 5px 20px 5px; 5     width: 100%; 6     text-align: right; 7     font-size: 16px; 8     color: rgba(255,255,255,0.6); 9 }10  11 .view-back span:first-child {12     padding-top: 20px;13 }14  15 .view-back a {16     display: bock;17     font-size: 18px;18     color: rgba(255,255,255,0.4);19     position: absolute;20     right: 15px;21     bottom: 15px;22     border: 2px solid rgba(255,255,255,0.3);23     border-radius: 50%;24     width: 30px;25     height: 30px;26     line-height: 22px;27     text-align: center;28     font-weight: 700;29 }30  31 .view-back a:hover {32     color: #fff;33     border-color: #fff;34 }
复制代码

有的浏览器不支持3D,我们需要额外的定义这个效果

复制代码
.view {    overflow: hidden;} .view:hover img {    left: -85px;} .view div.view-back {    background: #666;}
复制代码

 

 

 原文地址:http://www.cnblogs.com/web8cn/archive/2012/07/18/2597187.html

原创粉丝点击