jQuery實(shí)現(xiàn)的3D縮略圖懸停效果
今天我們要告訴你如何創(chuàng)建一些令人興奮的3D使用CSS3和jQuery懸停效果。這一想法的靈感來自于涼爽的懸停效果,再給客戶做網(wǎng)站的時候用的這樣的效果,今天就共享出來
在這個效果當(dāng)中,我將使用的thumbails,就會發(fā)現(xiàn)一些更多的信息懸停。將創(chuàng)建一個使用jQuery的結(jié)構(gòu),將允許的圖象出現(xiàn)折疊或彎曲,當(dāng)他懸停時候。為懸停效果,我們將使用CSS 3D變換。效果如下 演示 下載
鼠標(biāo)經(jīng)過時候
看看火狐下面的效果,鼠標(biāo)經(jīng)過的時候展示出3D變換效果
#p#
thumbnail 的DIV代碼如下所示
- <div id="grid" class="main">
- <div class="view">
- <div class="view-back">
- <span data-icon="A">566</span>
- <span data-icon="B">124</span>
- <a href="http://www.flickr.com/photos/ag2r/5439506585/in/photostream">→</a>
- </div>
- <img src="images/1.jpg" />
- </div>
- <div class="view">
- <!-- ... -->
- </div>
- <!-- ... -->
- </div>
每個縮略圖的背視圖部分,我們要為每個背景圖部分創(chuàng)建與使用JavaScript 類視圖的結(jié)構(gòu)如下:
- <div class="view">
- <div class="view-back">
- <!-- ... -->
- </div>
- <div class="slice s1" style="background-image: url(images/1.jpg); ">
- <span class="overlay"></span>
- <div class="slice s2" style="background-image: url(images/1.jpg); ">
- <span class="overlay"></span>
- <div class="slice s3" style="background-image: url(images/1.jpg); ">
- <span class="overlay"></span>
- <div class="slice s4" style="background-image: url(images/1.jpg); ">
- <span class="overlay"></span>
- <div class="slice s5" style="background-image: url(images/1.jpg); ">
- <span class="overlay"></span>
- </div><!-- /s5 -->
- </div><!-- /s4 -->
- </div><!-- /s3 -->
- </div><!-- /s2 -->
- </div><!-- /s1 -->
- </div><!-- /view -->
每個背景圖鼠標(biāo)移動的時候都會有各自的形象和作為它的背景圖片,因為我們有一個背景嵌套的結(jié)構(gòu),這將使我們能夠控制的他的效果。此外,我們將添加一個覆蓋跨度,javascript代碼如下
- $.fn.hoverfold = function( args ) {
- this.each( function() {
- $( this ).children( '.view' ).each( function() {
- var $item = $( this ),
- img = $item.children( 'img' ).attr( 'src' ),
- struct = '<div class="slice s1">';
- struct +='<div class="slice s2">';
- struct +='<div class="slice s3">';
- struct +='<div class="slice s4">';
- struct +='<div class="slice s5">';
- struct +='</div>';
- struct +='</div>';
- struct +='</div>';
- struct +='</div>';
- struct +='</div>';
- var $struct = $( struct );
- $item.find( 'img' ).remove().end().append( $struct ).find( 'div.slice' ).css( 'background-image', 'url(' + img + ')' ).prepend( $( '<span class="overlay" ></span>' ) );
- } );
- });
- };
CSS代碼如下
- .view {
- width: 316px;
- height: 216px;
- margin: 10px;
- float: left;
- position: relative;
- border: 8px solid #fff;
- box-shadow: 1px 1px 2px rgba(0,0,0,0.05);
- background: #333;
- perspective: 500px;
- }
3D過度效果CSS代碼
- .view .slice{
- width: 60px;
- height: 100%;
- z-index: 100;
- transform-style: preserve-3d;
- transform-origin: left center;
- transition: transform 150ms ease-in-out;
- }
描述部分的CSS代碼
- .view div.view-back{
- width: 50%;
- height: 100%;
- position: absolute;
- right: 0;
- background: #666;
- z-index: 0;
- }
前臺風(fēng)格跨度的代碼
- .view-back span {
- display: block;
- float: right;
- padding: 5px 20px 5px;
- width: 100%;
- text-align: right;
- font-size: 16px;
- color: rgba(255,255,255,0.6);
- }
- .view-back span:first-child {
- padding-top: 20px;
- }
- .view-back a {
- display: bock;
- font-size: 18px;
- color: rgba(255,255,255,0.4);
- position: absolute;
- right: 15px;
- bottom: 15px;
- border: 2px solid rgba(255,255,255,0.3);
- border-radius: 50%;
- width: 30px;
- height: 30px;
- line-height: 22px;
- text-align: center;
- font-weight: 700;
- }
- .view-back a:hover {
- color: #fff;
- border-color: #fff;
- }
有的瀏覽器不支持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
【編輯推薦】
- 多款優(yōu)秀的jQuery 工具提示插件
- jQuery 1.8 Beta 2 發(fā)布
- 使用jQuery的9個誤區(qū)
- 15款最近比較受歡迎的jQuery插件
- jQuery2.0真的不支持IE?想多了吧