欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jQuery實現(xiàn)產(chǎn)品對比功能附源碼下載

 更新時間:2016年08月09日 11:51:31   投稿:mrr  
一些電商網(wǎng)站產(chǎn)品或評測網(wǎng)站會為用戶提供產(chǎn)品對比的功能,用戶只需勾選多個需要對比的產(chǎn)品,就可以進行比對,下文給大家?guī)砹薺Query實現(xiàn)產(chǎn)品對比功能,一起看下吧

產(chǎn)品對比相信大家并不陌生,為了方便用戶對類似產(chǎn)品的相關(guān)信息進行有效直觀的對比,一些電商網(wǎng)站產(chǎn)品或評測網(wǎng)站會為用戶提供產(chǎn)品對比的功能,用戶只需勾選多個需要對比的產(chǎn)品,就可以進行比對。本文將使用jQuery來給大家講解如何實現(xiàn)產(chǎn)品對比功能。

查看演示     下載源碼

HTML

HTML結(jié)構(gòu)我們分三部分,第一是產(chǎn)品列表部分,展示所有可以對比的產(chǎn)品。我們以某手機網(wǎng)站為例,簡單的結(jié)構(gòu),只需展示產(chǎn)品圖片和名稱,以及一個添加按鈕。注意我們把手機的相關(guān)參數(shù)信息都放在屬性data-*里,等會后面展示對比信息的時候會用到。

<div class="selectProduct" data-title="華為P9" data-id="華為P9" data-size="5.2"" data-weight="144 g" data-os="Android 6.0" data-processor="海思麒麟955 2.5GHz(8核)" data-battery="3000mAH"> 
<a class="btn-floating light-grey addButtonCircular addToCompare">+</a> 
<img src="images/huawei_p9.jpg" class="imgFill productImg"> 
<h4>華為 P9</h4> 
</div>

第二部分是比對預(yù)覽框,我們選擇了需要對比的產(chǎn)品都會加入到比對預(yù)覽框中。我們使用CSS控制默認(rèn)不顯示,當(dāng)有產(chǎn)品被加入時,在固定的頁面的底部顯示比對預(yù)覽框。

<div class="row"> 
<div class="col-md-12 comparePanle"> 
<div class="row"> 
<div class="col-md-9"> 
<h4>對比中的產(chǎn)品</h4> 
</div> 
<div class="col-md-3"> 
<button class="btn btn-default cmprBtn" disabled>開始對比</button> 
</div> 
</div> 
<div class="comparePan"></div> 
</div> 
</div>

第三部分就是詳細的比對信息彈出層。默認(rèn)是不顯示的,當(dāng)點擊比對框中的開始比對按鈕,會彈出一個詳細信息層,以列表的形式將所選的產(chǎn)品進行詳細比對。

<div id="id01" class="animate-zoom modal modPos"> 
<div class="modal-title"> 
<a onclick="document.getElementById('id01').style.display='none'" class="modal-closebtn">&times;</a> 
</div> 
<div class="row contentPop"></div> 
</div>

Css文件在源碼中打包好,這里不列出來了,請自行下載源碼查看。

jQuery

本示例是基于jQuery的,所以在寫js代碼前應(yīng)該先將jQuery庫文件加載好。

首先,當(dāng)點擊產(chǎn)品展示的右上角的“+”號,則會將當(dāng)前產(chǎn)品添加到位于頁面底部的比對框中。業(yè)務(wù)流程是這樣的:點擊“+”號后,顯示比對框,當(dāng)前產(chǎn)品展示的“+”號變成“x”號,并且處于選中狀態(tài),獲取當(dāng)前產(chǎn)品的id,判斷當(dāng)前產(chǎn)品id是否在比對框中,如果不在比對框中,則將產(chǎn)品加入到比對框中,如果這時比對框中的產(chǎn)品超過了3個,則彈出提示框。如果比對框中已經(jīng)存在當(dāng)前產(chǎn)品,那么這個時候?qū)嶋H點擊的是“x”號,當(dāng)前產(chǎn)品會從比對框中刪除。還有一個細節(jié)就是,當(dāng)比對框中只有一個產(chǎn)品時,不能做比對,所以比對框中的“開始比對”按鈕是不可用的disabled。

var list = []; 
//添加到對比項 
$(document).on('click', '.addToCompare', function () { 
$(".comparePanle").show(); 
$(this).toggleClass("rotateBtn"); 
$(this).parents(".selectProduct").toggleClass("selected"); 
var productID = $(this).parents('.selectProduct').attr('data-title'); 
var inArray = $.inArray(productID, list); 
if (inArray < 0) { 
if (list.length > 2) { 
alert('最多只能選擇3個產(chǎn)品'); 
$(this).toggleClass("rotateBtn"); 
$(this).parents(".selectProduct").toggleClass("selected"); 
return; 
} 
if (list.length < 3) { 
list.push(productID); 
var displayTitle = $(this).parents('.selectProduct').attr('data-id'); 
var image = $(this).siblings(".productImg").attr('src'); 
$(".comparePan").append('<div id="' + productID + '" class="relPos col-md-3 text-center"><a class="selectedItemCloseBtn closebtn">&times</a><img src="' + image + '" alt="image" style="height:100px;"/><p id="' + productID + '" class="ptitle">' + displayTitle + '</p></div>'); 
} 
} else { 
list.splice($.inArray(productID, list), 1); 
var prod = productID.replace(" ", ""); 
$('#' + prod).remove(); 
hideComparePanel(); 
} 
if (list.length > 1) { 
$(".cmprBtn").addClass("active"); 
$(".cmprBtn").removeAttr('disabled'); 
} else { 
$(".cmprBtn").removeClass("active"); 
$(".cmprBtn").attr('disabled', ''); 
} 
});

接下來到了比對框的操作了,產(chǎn)品加到比對框后,點擊“開始比對”按鈕,彈出層,獲取比對的產(chǎn)品信息,并將產(chǎn)品信息加入到彈出層中。這里,我們使用了jQUery的$(el).data()方法獲取了前面html中產(chǎn)品中的data-*屬性內(nèi)容。

$(document).on('click', '.cmprBtn', function () { 
if ($(".cmprBtn").hasClass("active")) { 
/* this is to print the features list statically*/ 
$(".contentPop").append('<div class="col-md-3 compareItemParent relPos">' + '<ul class="product"><li class=" relPos compHeader">產(chǎn)品信息</li><li>名稱</li><li>屏幕大小</li><li>重量</li><li>系統(tǒng)</li><li class="cpu">CPU</li><li>電池容量</li></ul></div>'); 
for (var i = 0; i < list.length; i++) { 
/* this is to add the items to popup which are selected for comparision */ 
product = $('.selectProduct[data-title="' + list[i] + '"]'); 
var image = $('[data-title=' + list[i] + ']').find(".productImg").attr('src'); 
var title = $('[data-title=' + list[i] + ']').attr('data-id'); 
/*appending to div*/ 
$(".contentPop").append('<div class="col-md-3 compareItemParent relPos">' + '<ul class="product">' + '<li class="compHeader"><img src="' + image + '" class="compareThumb"></li>' + '<li>' + title + '</li>' + '<li>' + $(product).data('size') + '</li>' + '<li>' + $(product).data('weight') + '</li><li>'+ $(product).data('os') +'</li><li class="cpu">' + $(product).data('processor') + '</li>' + '<li>' + $(product).data('battery') + '</ul>' + '</div>'); 
} 
} 
$(".modPos").show(); 
});

然后,產(chǎn)品信息展示出來了,點擊右上角的“x”號,會關(guān)閉彈出層,并且清除比對框中的內(nèi)容。

$(document).on('click', '.modal-closebtn', function () { 
$(".contentPop").empty(); 
$(".comparePan").empty(); 
$(".comparePanle").hide(); 
$(".modPos").hide(); 
$(".selectProduct").removeClass("selected"); 
$(".cmprBtn").attr('disabled', ''); 
list.length = 0; 
$(".rotateBtn").toggleClass("rotateBtn"); 
});

最后,我們在比對框中也可以移除比對的產(chǎn)品,點擊比對產(chǎn)品框中的“x“號,會移除對應(yīng)的產(chǎn)品。

$(document).on('click', '.selectedItemCloseBtn', function () { 
var test = $(this).siblings("p").attr('id'); 
$('[data-title=' + test + ']').find(".addToCompare").click(); 
hideComparePanel(); 
}); 
function hideComparePanel() { 
if (!list.length) { 
$(".comparePan").empty(); 
$(".comparePanle").hide(); 
} 
}

以上所述是小編給大家介紹的jQuery實現(xiàn)產(chǎn)品對比功能附源碼下載,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論