ホームページ >ウェブフロントエンド >H5 チュートリアル >HTML5 対応の段階的にカスタマイズされた製品テンプレート

HTML5 対応の段階的にカスタマイズされた製品テンプレート

黄舟
黄舟オリジナル
2017-01-19 13:38:531464ブラウズ

簡単なチュートリアル

これは、jQuery と CSS3 で作成された HTML5 レスポンシブなステップバイステップのカスタマイズされた製品テンプレートです。このテンプレートを通じて、ユーザーは必要な製品を段階的にカスタマイズできます。最後のステップでは、商品の価格と説明が表示されます。

使用方法

HTML構造

このテンプレートのHTML構造は3つの部分に分かれています: header.main-headerはトップナビゲーションとして使用され、div.cd-builder-stepsは製品のカスタマイズ手順に使用され、フッター.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(&#39;.cd-builder-steps&#39;);
  //...
  this.bindEvents();
}
  
  
if( $(&#39;.cd-product-builder&#39;).length > 0 ) {
  $(&#39;.cd-product-builder&#39;).each(function(){
    //create a productBuilder object for each .cd-product-builder
    new ProductBuilder($(this));
  });
}

ユーザーがモデルを選択した後、Ajax 呼び出しを通じて新しいコンテンツを取得します。 ul.models-list の各リスト項目には、この新しい HTML ページの名前とまったく同じ data-model 属性があります。

$.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) {
       //...
    }
});

上記は、HTML5 対応のステップバイステップのカスタマイズされた製品テンプレートの内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。