幻灯片/轮播

超炫jQuery+CSS3弹出层图片画廊特效

阿里云

这是一款效果非常炫酷的响应式 jQuery 和 CSS3 弹出层图片画廊特效插件。该图片画廊特效共 5 种效果,每一种效果都带有缩略图动画,和全屏图片画廊效果。该图片画廊效果中,页面上有一些缩略图,当用户鼠标滑过到缩略图上面的时候,缩略图以动画的方式展现出该图片画廊要呈现的样式。点击该缩略图后可以进入相应的全屏图片画廊模式。特效中所有的动画效果都是使用 CSS transitions 来完成。该图片画廊具有响应式的效果,图片尺寸会随着屏幕的尺寸的改变而发生改变。

HTML 结构:

#fullscreen 元素用于制作图片画廊的弹出层。这个元素默认是隐藏的,通过 Javascript 来将它激活。实际的图片将会被放置到#fullscreen-image 元素里面。

也想出现在这里?联系我们
创客主机
  1. <div id="fullscreen">
  2.   <div id="fullscreen-inner">
  3.     <div id="fullscreen-inner-left" class="fullscreen-inner-button">
  4.       <span class="icon-caret-left"></span>
  5.     </div>
  6.     <div id="fullscreen-inner-right" class="fullscreen-inner-button">
  7.       <span class="icon-caret-right"></span>
  8.     </div>
  9.     <div id="fullscreen-inner-close" class="fullscreen-inner-button">
  10.       <span class="icon-close"></span>
  11.     </div>
  12.     <div id="fullscreen-image"></div>
  13.   </div>
  14. </div>

#wrapper 和#wrapper-inner 是页面的包裹元素,用于页面居中。

  1. <section>
  2.   <article>
  3.     <h2>Post Two</h2>
  4.     <p>...</p>
  5.   </article>
  6.   ......
  7. </section>

然后往里面添加图片和文字内容。

  1. <div class="wrapper-inner-content">
  2.   <div class="wrapper-inner-content-image">
  3.     <img src="_assets/greece1.jpg"/>
  4.     ......  
  5.     <div class="wrapper-inner-content-image-hover">
  6.       <div class="wrapper-inner-content-image-hover-cercle">
  7.         <span class="icon-search"></span>
  8.       </div>
  9.     </div>
  10.   </div>
  11.   <div class="wrapper-inner-content-text" style="margin-left:35px;">
  12.     <p>......</p>
  13.   </div>
  14. </div>

CSS 样式:

每一种图片画廊弹出效果对于一个 pop-up-galleryN.css 文件。要使用哪一种效果,引入对于的 CSS 文件即可。例如第一种效果引入 pop-up-gallery1.css 文件。

  1. <link href="css/pop-up-gallery1.css" rel="stylesheet" type="text/css" />

JavaScript:

在 js 代码中,设置了每一个.wrapper-inner-content-image 元素的高度等于第一张图片的高度。

  1. $('.wrapper-inner-content-image').each(function() {
  2.   var this_element = $(this);
  3.   this_element.height(this_element.find('img:first-child').height());
  4.   this_element.find('.wrapper-inner-content-image-hover').height(this_element.find('img:first-child').height());
  5. ;});

接下来是处理浏览器窗口尺寸改变的时候图片的大小。

  1. function resize_popup(){
  2.  
  3.   var window_width = window.innerWidth; 
  4.   var window_height = window.innerHeight; 
  5.   var max_image_width = window.innerWidth - ((35*2)+(window_width/100*40));
  6.   var max_image_height = window.innerHeight - 200;
  7.   var image_width = $('#fullscreen-image img').width();
  8.   var image_height = $('#fullscreen-image img').height();
  9.   var image_WH_ratio = image_width/image_height;
  10.   var image_HW_ratio = image_height/image_width;
  11.   var image_new_width = max_image_height*image_WH_ratio;
  12.   var image_new_height = max_image_width*image_HW_ratio;
  13.  
  14.   $('#fullscreen-image').width(max_image_width);
  15.   $('#fullscreen-image').height(max_image_height);
  16.  
  17.   if(max_image_width > 2 && max_image_height > 2){
  18.     if(image_new_height>max_image_height){
  19.       $('#fullscreen-image img').width(image_new_width);
  20.       $('#fullscreen-image img').height(max_image_height);
  21.       $('#fullscreen-image img').css('margin-top',-max_image_height/2);
  22.       $('#fullscreen-image img').css('margin-left',-image_new_width/2);
  23.     }else{  
  24.       $('#fullscreen-image img').width(max_image_width);
  25.       $('#fullscreen-image img').height(image_new_height);
  26.       $('#fullscreen-image img').css('margin-top',-image_new_height/2); 
  27.       $('#fullscreen-image img').css('margin-left',-max_image_width/2);   
  28.     }
  29.   }
  30. }

当用户点击了某个缩略图后,原先#fullscreen-image 中的所有图片会被移除,然后将当前点击的图片复制到#fullscreen-image 中。

  1. function open_close_gallery(){
  2.  
  3.   var this_element = '';
  4.  
  5.   $('.wrapper-inner-content-image-hover').click(function() {
  6.     $('#fullscreen-image').find('img').remove();
  7.     this_element = $(this);
  8.     this_element.parent().find('img').clone().appendTo('#fullscreen-image');
  9.  
  10.       $('#fullscreen').show();    
  11.       $('#fullscreen').removeClass('fadeOut').addClass('fadeIn');    
  12.       $('#fullscreen-image').removeClass('fadeOutDown').addClass('fadeInDown');
  13.       resize_popup();
  14.   }); 
  15.  
  16.   $('#fullscreen-inner-close').click(function() {
  17.   $('#fullscreen').removeClass('fadeIn').addClass('fadeOut').delay(500).hide(0);
  18.   $('#fullscreen-image').removeClass('fadeInDown').addClass('fadeOutDown');
  19.   }); 
  20. }

全屏图片画廊中图片的切换只是简单的将最后一张图片移动到最前面。

  1. function next_slide(){
  2.   $('#fullscreen-image img:last-child').insertBefore( $('#fullscreen-image img:first-child') );
  3. }
  4. function previous_slide(){
  5.   $('#fullscreen-image img:first-child').insertAfter( $('#fullscreen-image img:last-child') );
  6. }

图片画廊是可以使用键盘的方向键来控制的,它通过下面的代码来实现。

  1. $(document).keydown(function(e) {
  2.     switch(e.which) {
  3.         case 37: // left
  4.         previous_slide();
  5.         break;
  6.  
  7.         case 38: // up
  8.         next_slide();
  9.         break;
  10.  
  11.         case 39: // right
  12.         next_slide();
  13.         break;    
  14.  
  15.         case 40: // down
  16.         previous_slide();
  17.         break;
  18.  
  19.         default: return; // exit this handler for other keys
  20.     }
  21.     e.preventDefault(); // prevent the default action (scroll / move caret)

超炫 jQuery+CSS3 弹出层图片画廊特效

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

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

发表回复

热销模板

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

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