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

今天我们要告诉你如何创建一些令人兴奋的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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值