幻灯片/轮播

创意商品图片预览轮播图插件

阿里云

这是一款非常实用的 jQuery 和 CSS3 创意商品图片预览轮播图插件。该轮播图插件以每个商品作为一个轮播图,用户可以在每个商品缩略图中查看该商品的颜色和款式。一般的商务网站都是通过图片来吸引用户,强烈的视觉冲击,尤其是在移动 mobile 设备,能够为你的商品获得更多用户的关注。

如果一件商品有不同的颜色和款式,那么一张商品缩略图就无法向用户表达,除非用户点击进入商品详细页。一个良好的且十分有创意的 UX 方案是在一张商品缩略图中可以让用户轮播切换商品图片。这只是一个简单的轮播图,可以让用户在点击进入商品详细页之前预览商品的颜色和款式。这种设计方式将可以大大的提升用户体验度以及获得更好转换率。

也想出现在这里?联系我们
创客主机

HTML 结构:

该商品图片预览轮播图的 HTML 结构使用无序列表结构。每一个列表项都嵌套一个无序列表,用于存放商品的缩略图和商品的信息。

  1. <ul class="cd-gallery">
  2.   <li>
  3.     <a href="http://codyhouse.co/">
  4.       <ul class="cd-item-wrapper">
  5.         <li class="selected">
  6.           <img src="img/ugmonk-tshirt-1.jpg" alt="Preview image">
  7.         </li>
  8.  
  9.         <li class="move-right" data-sale="true" data-price="$22">
  10.           <img src="img/ugmonk-tshirt-2.jpg" alt="Preview image">
  11.         </li>
  12.  
  13.         <li>
  14.           <img src="img/ugmonk-tshirt-3.jpg" alt="Preview image">
  15.         </li>
  16.       </ul> <!-- cd-item-wrapper -->
  17.     </a>
  18.  
  19.     <div class="cd-item-info">
  20.       <b><a href="#0">Mountains</a></b>
  21.  
  22.       <em class="cd-price">$26</em>
  23.     </div> <!-- cd-item-info -->
  24.   </li>
  25.  
  26.   <!-- other list items here -->
  27. </ul> <!-- cd-gallery -->

注意:.cd-dots(每个商品轮播图的导航小圆点)和.cd-new-price(商品的价格)不是直接写在 HTML 中的,而是使用 jQuery 来动态插入。

CSS 样式:

在小屏幕设备上,用户看到的商品预览图是默认的样式:每次只看到一张图片,因为屏幕较小,这样不会使用户分心。用户可以通过滑动图片或点击缩略图来查看下一张预览图。默认情况下,预览图是绝对定位并且使用 translate 将它们定位在父元素(.cd-gallery)之外,使它们不可见。插件中定义了 4 个 class 来为各个状态的缩略图定义样式:.selected-添加到列表的第一项,使其可见;.move-right-添加到列表的第二项,使预览图位于右边;.move-left-使预览图位于左边和.hide-left-隐藏左边的预览图。

  1. .cd-item-wrapper li {
  2.   position: absolute;
  3.   top: 0;
  4.   left: 25%;
  5.   width: 50%;
  6.   opacity: 0;
  7.   transform: translateX(200%) scale(0.7);
  8. }
  9. .cd-item-wrapper li.selected {
  10.   /* selected item */
  11.   position: relative;
  12.   opacity: 1;
  13.   transform: translateX(0) scale(1.3);
  14. }
  15. .cd-item-wrapper li.move-right {
  16.   /* item on right - preview visible */
  17.   transform: translateX(100%) scale(0.7);
  18.   opacity: 0.3;
  19. }
  20. .cd-item-wrapper li.move-left {
  21.   /* item on left - preview visible */
  22.   transform: translateX(-100%) scale(0.7);
  23.   opacity: 0.3;
  24. }
  25. .cd-item-wrapper li.hide-left {
  26.   /* items hidden on the left */
  27.   transform: translateX(-200%) scale(0.7);
  28. }

在大屏幕上,用户在同一时间里可以看到更多的商品预览图。这时,为了保证预览图的简洁,在开始时只会显示一张商品预览图。当用户用鼠标悬停在某张商品预览图上面的时候,才会显示出更多的商品预览图。插件中声明了 3 个 class:.hover-当用户用鼠标滑过某张预览图时使用;.focus-on-right-当用户用鼠标滑过.move-right 元素的时候添加到.selected 和.move-left 列表项上;.focus-on-left-当用户用鼠标滑过.move-left 元素时添加到.selected 和.move-right 列表项上。

  1. @media only screen and (min-width: 1048px) {
  2.   .cd-item-wrapper li.move-left,
  3.   .cd-item-wrapper li.move-right {
  4.     /* hide preview items */
  5.     opacity: 0;
  6.   }
  7.   .cd-item-wrapper li.focus-on-left {
  8.     /* class added to the .selected and .move-right items when user hovers over the .move-left item (item preview on the left) */
  9.     transform: translateX(3%) scale(1.25);
  10.   }
  11.   .cd-item-wrapper li.focus-on-left.move-right {
  12.     transform: translateX(103%) scale(0.7);
  13.   }
  14.   .cd-item-wrapper li.focus-on-right {
  15.     /* class added to the .selected and .move-left items when user hovers over the .move-right item (item preview on the right) */
  16.     transform: translateX(-3%) scale(1.25);
  17.   }
  18.   .cd-item-wrapper li.focus-on-right.move-left {
  19.     transform: translateX(-103%) scale(0.7);
  20.   }
  21.   .cd-item-wrapper li.hover {
  22.     /* class added to the preview items (.move-left or .move-right) when user hovers over them */
  23.     opacity: 1;
  24.   }
  25.   .cd-item-wrapper li.hover.move-left {
  26.     transform: translateX(-97%) scale(0.75);
  27.   }
  28.   .cd-item-wrapper li.hover.move-right {
  29.     transform: translateX(97%) scale(0.75);
  30.   }
  31. }

JAVASCRIPT:

该商品图片预览轮播图插件使用 jQuery 来实现图片轮播效果(通过触摸滑动导航、前/后导航按钮和原点导航)。另外,插件中提供了一个 updatePrice()方法来动态更新商品的价格,将最新价格和原来的价格同时显示出来。这个方法会检查某个商品是否正在销售状态(data-sale="true"),如果是,就为.cd-price 元素添加.on-sale class(这使得原来的价格被划上一条横线),并插入一个新的.cd-new-price 元素(它的值等于当前商品的 data-price)。你可以在 demo 中的 T 恤衫上看到这个效果。

  1. function updatePrice(container, n) {
  2.   //container -> each one of the $('.cd-gallery').children('li')
  3.   //n -> index of the selected item in the .cd-item-wrapper
  4.   var priceTag = container.find('.cd-price'),
  5.     selectedItem = container.find('.cd-item-wrapper li').eq(n);
  6.   if( selectedItem.data('sale') ) { 
  7.     // if item is on sale - cross old price and add new one
  8.     priceTag.addClass('on-sale');
  9.     var newPriceTag = ( priceTag.next('.cd-new-price').length > 0 ) ? priceTag.next('.cd-new-price') : $('<em class="cd-new-price"></em>').insertAfter(priceTag);
  10.     newPriceTag.text(selectedItem.data('price'));
  11.     setTimeout(function(){ newPriceTag.addClass('is-visible'); }, 100);
  12.   } else {
  13.     // if item is not on sale - remove cross on old price and sale price
  14.     priceTag.removeClass('on-sale').next('.cd-new-price').removeClass('is-visible').on('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(){
  15.       priceTag.next('.cd-new-price').remove();
  16.     });
  17.   }
  18. }

创意商品图片预览轮播图插件

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

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

发表回复

热销模板

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

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