HTML5响应式分步定制商品模板

这是一款使用jQueryCSS3制作的HTML5响应式分步定制商品模板。通过这个模板,用户可以一步一步的定制自己所需要的商品。最后的步骤会给出商品的价格和描述信息。

使用方法

HTML结构

该模板的HTML结构分为3个部分:header.main-header用于作为顶部导航,div.cd-builder-steps用于商品定制步骤,footer.cd-builder-footer用于底部导航和一些描述信息。

<div class="cd-product-builder">
  <header class="main-header">
    <h1>Product Builder</h1>
    
    <nav class="cd-builder-main-nav disabled">
      <ul>
        <li class="active"><a href="#models">Models</a></li>
        <li><a href="#colors">Colors</a></li>
        <li><a href="#accessories">Accessories</a></li>
        <li><a href="#summary">Summary</a></li>
      </ul>
    </nav>
  </header>
 
  <div class="cd-builder-steps">
    <ul>
      <li data-selection="models" class="active builder-step">
        <section class="cd-step-content">
          <header>
            <h1>Select Model</h1>
            <span class="steps-indicator">Step <b>1</b> of 4</span>
          </header>
 
          <a href="#0" class="cd-nugget-info">Article & Downaload</a>
 
          <ul class="models-list options-list cd-col-2">
            <!-- models here -->
          </ul>
        </section>
      </li>
      <!-- additional content will be inserted using ajax -->
    </ul>
  </div>
 
  <footer class="cd-builder-footer disabled step-1">
    <div class="selected-product">
      <img src="img/product01_col01.jpg" alt="Product preview">
 
      <div class="tot-price">
        <span>Total</span>
        <span class="total">$<b>0</b></span>
      </div>
    </div>
    
    <nav class="cd-builder-secondary-nav">
      <ul>
        <li class="next nav-item">
          <ul>
            <li class="visible"><a href="#0">Colors</a></li>
            <li><a href="#0">Accessories</a></li>
            <li><a href="#0">Summary</a></li>
            <li class="buy"><a href="#0">Buy Now</a></li>
          </ul>
        </li>
        <li class="prev nav-item">
          <ul>
            <li class="visible"><a href="#0">Models</a></li>
            <li><a href="#0">Models</a></li>
            <li><a href="#0">Colors</a></li>
            <li><a href="#0">Accessories</a></li>
          </ul>
        </li>
      </ul>
    </nav>
 
    <span class="alert">Please, select a model first!</span>
  </footer>
</div>     
                
CSS样式

界面CSS样式非常简单,只需要注意div.cd-builder-steps用于包裹不同的定制步骤,它里面的子元素是绝对定位的,它们相互重叠在一起,高度和宽度都是100%,默认它们为隐藏状态,只有附加.activeclass时才会被显示出来。

.cd-builder-steps > ul {
  height: 100%;
  overflow: hidden;
}
.cd-builder-steps .builder-step {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  visibility: hidden;
  transition: visibility .5s;
}
.cd-builder-steps .builder-step.active {
  position: relative;
  z-index: 2;
  visibility: visible;
}           
                
JavaScript

在JS代码中创建了一个ProductBuilder对象,并使用bindEvents方法来处理各种事件。

function ProductBuilder( element ) {
  this.element = element;
  this.stepsWrapper = this.element.children('.cd-builder-steps');
  //...
  this.bindEvents();
}
 
 
if( $('.cd-product-builder').length > 0 ) {
  $('.cd-product-builder').each(function(){
    //create a productBuilder object for each .cd-product-builder
    new ProductBuilder($(this));
  });
}                  
                

当用户选择了一个模型之后,通过Ajax调用获取新的内容。在ul.models-list的每一个列表项中,都带有一个data-model属性,它刚好等于这个新的HTML页面的名字。

$.ajax({
    type       : "GET",
    dataType   : "html",
    url        : modelType+".html",
    beforeSend : function(){
      self.loaded = false;
    },
    success    : function(data){
      self.models.after(data);
      self.loaded = true;
      //...
    },
    error     : function(jqXHR, textStatus, errorThrown) {
       //...
    }
});                  
                

在线预览    源码下载

爱编程-编程爱好者经验分享平台
版权所有 爱编程 © Copyright 2012. All Rights Reserved.
闽ICP备12017094号-3