基于JavaScript實現(xiàn)添加到購物車效果附源碼下載
我們有很多種方法實現(xiàn)將商品添加到購物車,通常的做法是點擊“添加到購物車”按鈕,會跳轉(zhuǎn)到購物車,在購物車?yán)锟梢渣c擊“結(jié)算”按鈕進(jìn)行結(jié)算。而今天我給大家介紹一個更友好的解決方案。

默認(rèn)情況下,購物車是隱藏不可見的,當(dāng)用戶點擊添加到購物車按鈕后,商品信息會添加到購物車,購物車會以按鈕的形式出現(xiàn)在頁面右下角,點擊按鈕則會展開購物車,顯示購物車中的商品信息,同時也可以對購物車中的商品進(jìn)行刪除或者結(jié)算等操作。用戶也可以暫時關(guān)閉購物車?yán)^續(xù)購物。
HTML結(jié)構(gòu)
HTML結(jié)構(gòu)主要包括兩部分,第一部分是商品列表中的“添加到購物車”按鈕,如下代碼,我們使用data-*屬性將商品的id,圖片、名稱、價格等信息一并帶上。
<a href="#0" class="btn btn-success add-button" data-price="3669.00" data-proid="1" data-proname="華為P9" data-proimg="img/huawei_p9.jpg">添加到購物車</a>
第二部分是購物車,購物車部分包括觸發(fā)購物車以及購物車統(tǒng)計部分 .cd-cart-trigger和購物車主體內(nèi)容部分.cd-cart。
<div class="cd-cart-container empty"> <a href="#0" class="cd-cart-trigger"> 購物車 <ul class="count"> <!-- cart items count --> <li>0</li> <li>0</li> </ul> </a> <div class="cd-cart"> <div class="wrapper"> <header> <h2>購物車</h2> <span class="undo">已刪除 <a href="#0">恢復(fù)</a></span> </header> <div class="body"> <ul> <!-- 此部分是購物車商品部分,由javascript動態(tài)插入 --> </ul> </div> <footer> <a href="#0" class="checkout"><em>結(jié)算 - ¥<span>0</span></em></a> </footer> </div> </div> </div>
在div.body元素里的ul列表默認(rèn)是空的,它是用來顯示購物車的商品列表信息的,它的大致結(jié)構(gòu)如下,它是由Javascript動態(tài)插入的。
<div class="body"> <ul> <li class="product"> <div class="product-image"> <a href="#0"><img src="img/pro.jpg" alt="placeholder"></a> </div> <div class="product-details"> <h3><a href="#0">商品名稱</a></h3> <span class="price">¥3999.99</span> <div class="actions"> <a href="#0" class="delete-item">刪除</a> <div class="quantity"> <label for="cd-product-'+ productId +'">件數(shù)</label> <span class="select"> <span class="select">x<i id="cd-product-'+proid+'">1</i></span> </span> </div> </div> </div> </li> </ul> </div>
CSS部分在本文不展示了,大家可以下載源碼中的css/style.css查看。
Javascript
本實例代碼是基于jQuery,因此需要提前加載jQUery庫文件。
當(dāng)用戶點擊按鈕.add-button后,觸發(fā)函數(shù)addProduct(),將商品信息插入到 .body > ul中。
function addProduct(proname,proid,price,proimg) {
var quantity = $("#cd-product-"+proid).text();
var select='',productAdded='';
if(quantity==''){
var select = '<span class="select">x<i id="cd-product-'+proid+'">1</i></span>';
var productAdded = $('<li class="product"><div class="product-image"><a href="#0"><img src="'+proimg+'" alt="placeholder"></a></div><div class="product-details"><h3><a href="#0">'+proname+'</a></h3><span class="price">¥'+price+'</span><div class="actions"><a href="#0" class="delete-item">刪除</a><div class="quantity"><label for="cd-product-'+ proid +'">件數(shù)</label>'+select+'</div></div></div></li>');
cartList.prepend(productAdded);
}else{
quantity = parseInt(quantity);
$("#cd-product-"+proid).html(quantity+1);
}
}
以上所述是小編給大家介紹的基于JavaScript實現(xiàn)添加到購物車效果附源碼下載,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript markdown 編輯器實現(xiàn)雙屏同步滾動
這篇文章主要介紹了JavaScript markdown 編輯器實現(xiàn)雙屏同步滾動,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-08-08
js實現(xiàn)無限層級樹形數(shù)據(jù)結(jié)構(gòu)(創(chuàng)新算法)
這篇文章主要介紹了js實現(xiàn)無限層級樹形數(shù)據(jù)結(jié)構(gòu),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
拖動table標(biāo)題實現(xiàn)改變td的大小(css+js代碼)
拖動列寬的表格table標(biāo)題同時改變td的大小,本文將以實例演示為大家呈現(xiàn),感興趣的朋友可以參考下哈,希望對你學(xué)習(xí)js或者css有所幫助2013-04-04
javascript數(shù)組去重3種方法的性能測試與比較
面試題中有一題數(shù)組去重,首先想到的是對象存鍵值的方法可是遇到不同類型又能轉(zhuǎn)換成同樣的字符串的就完了接下來為大家介紹下雙重循環(huán)/存鍵值和類型實現(xiàn)去重,感興趣的各位可以參考下哈2013-03-03

