簡要教學
這是一款使用jQuery和CSS3製作的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) { //... } });
以上就是HTML5響應式逐步定製商品模板的內容,更多相關內容請關注PHP中文網(m.sbmmt.com)!