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

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

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

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

鼠标经过时候

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

#p#

thumbnail 的DIV代码如下所示

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

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

  1. <div class="view"> 
  2.      <div class="view-back"> 
  3.          <!-- ... --> 
  4.      </div> 
  5.      <div class="slice s1" style="background-image: url(images/1.jpg); "> 
  6.          <span class="overlay"></span> 
  7.          <div class="slice s2" style="background-image: url(images/1.jpg); "> 
  8.              <span class="overlay"></span> 
  9.              <div class="slice s3" style="background-image: url(images/1.jpg); "> 
  10.                  <span class="overlay"></span> 
  11.                  <div class="slice s4" style="background-image: url(images/1.jpg); "> 
  12.                      <span class="overlay"></span> 
  13.                      <div class="slice s5" style="background-image: url(images/1.jpg); "> 
  14.                          <span class="overlay"></span> 
  15.                      </div><!-- /s5 --> 
  16.                  </div><!-- /s4 -->        
  17.              </div><!-- /s3 --> 
  18.          </div><!-- /s2 --> 
  19.      </div><!-- /s1 -->        
  20.  </div><!-- /view --> 

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

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

CSS代码如下

  1. .view {  
  2.      width316px;  
  3.      height216px;  
  4.      margin10px;  
  5.      floatleft;  
  6.      positionrelative;  
  7.      border8px 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.      width60px;  
  3.      height100%;  
  4.      z-index100;  
  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.      width50%;  
  3.      height100%;  
  4.      positionabsolute;  
  5.      right: 0;  
  6.      background#666;  
  7.      z-index0;  
  8.  } 

前台风格跨度的代码

  1. .view-back span {  
  2.      displayblock;  
  3.      floatright;  
  4.      padding5px 20px 5px;  
  5.      width100%;  
  6.      text-alignright;  
  7.      font-size16px;  
  8.      color: rgba(255,255,255,0.6);  
  9.  }  
  10.     
  11.  .view-back span:first-child {  
  12.      padding-top20px;  
  13.  }  
  14.     
  15.  .view-back a {  
  16.      display: bock;  
  17.      font-size18px;  
  18.      color: rgba(255,255,255,0.4);  
  19.      positionabsolute;  
  20.      right: 15px;  
  21.      bottom: 15px;  
  22.      border2px solid rgba(255,255,255,0.3);  
  23.      border-radius: 50%;  
  24.      width30px;  
  25.      height30px;  
  26.      line-height22px;  
  27.      text-aligncenter;  
  28.      font-weight700;  
  29.  }  
  30.     
  31.  .view-back a:hover {  
  32.      color#fff;  
  33.      border-color#fff;  
  34.  } 

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

  1. .view {  
  2.     overflowhidden;  
  3. }  
  4. .view:hover img {  
  5.     left: -85px;  
  6. }  
  7. .view div.view-back {  
  8.     background#666;  

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

【编辑推荐】

  1. 多款优秀的jQuery 工具提示插件
  2. jQuery 1.8 Beta 2 发布
  3. 使用jQuery的9个误区
  4. 15款最近比较受欢迎的jQuery插件
  5. jQuery2.0真的不支持IE?想多了吧
责任编辑:张伟 来源: 资源分享的博客
相关推荐

2012-01-10 14:59:42

jQuery

2013-12-02 15:07:57

jQuery插件

2009-08-28 15:19:17

C#实现缩略图

2013-08-12 15:26:49

测试

2009-12-07 11:21:59

PHP生成缩略图

2009-10-26 17:38:22

VB.NET实现缩略图

2019-02-15 14:00:57

Linux命令缩略图

2023-05-26 07:08:05

CSS模糊实现文字

2009-08-12 16:33:37

.NET生成缩略图

2021-09-16 07:52:18

SwiftUScroll效果

2009-08-28 10:22:13

Windows 7系统故障应对缩略图无法显示

2021-08-30 06:20:39

CSS 技巧3D 效果

2010-01-20 10:29:37

Chrome缩略图标签管理

2011-07-01 11:18:50

Qt 多线程

2011-09-07 10:00:53

Ubuntu3D

2012-09-20 15:00:38

Win 8操作系统

2010-06-09 16:21:10

OpenSUSE界面

2022-02-21 16:38:19

Serverless图片视频

2020-11-02 14:49:46

GitHub Java图片

2009-05-13 08:13:37

SUSELinux 10.3Nvidia
点赞
收藏

51CTO技术栈公众号