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

默認(rèn)情況下,購(gòu)物車(chē)是隱藏不可見(jiàn)的,當(dāng)用戶點(diǎn)擊添加到購(gòu)物車(chē)按鈕后,商品信息會(huì)添加到購(gòu)物車(chē),購(gòu)物車(chē)會(huì)以按鈕的形式出現(xiàn)在頁(yè)面右下角,點(diǎn)擊按鈕則會(huì)展開(kāi)購(gòu)物車(chē),顯示購(gòu)物車(chē)中的商品信息,同時(shí)也可以對(duì)購(gòu)物車(chē)中的商品進(jìn)行刪除或者結(jié)算等操作。用戶也可以暫時(shí)關(guān)閉購(gòu)物車(chē)?yán)^續(xù)購(gòu)物。
HTML結(jié)構(gòu)
HTML結(jié)構(gòu)主要包括兩部分,第一部分是商品列表中的“添加到購(gòu)物車(chē)”按鈕,如下代碼,我們使用data-*屬性將商品的id,圖片、名稱、價(jià)格等信息一并帶上。
<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">添加到購(gòu)物車(chē)</a>
第二部分是購(gòu)物車(chē),購(gòu)物車(chē)部分包括觸發(fā)購(gòu)物車(chē)以及購(gòu)物車(chē)統(tǒng)計(jì)部分 .cd-cart-trigger和購(gòu)物車(chē)主體內(nèi)容部分.cd-cart。
<div class="cd-cart-container empty"> <a href="#0" class="cd-cart-trigger"> 購(gòu)物車(chē) <ul class="count"> <!-- cart items count --> <li>0</li> <li>0</li> </ul> </a> <div class="cd-cart"> <div class="wrapper"> <header> <h2>購(gòu)物車(chē)</h2> <span class="undo">已刪除 <a href="#0">恢復(fù)</a></span> </header> <div class="body"> <ul> <!-- 此部分是購(gòu)物車(chē)商品部分,由javascript動(dòng)態(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)是空的,它是用來(lái)顯示購(gòu)物車(chē)的商品列表信息的,它的大致結(jié)構(gòu)如下,它是由Javascript動(dòng)態(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
本實(shí)例代碼是基于jQuery,因此需要提前加載jQUery庫(kù)文件。
當(dāng)用戶點(diǎn)擊按鈕.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實(shí)現(xiàn)添加到購(gòu)物車(chē)效果附源碼下載,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript markdown 編輯器實(shí)現(xiàn)雙屏同步滾動(dòng)
這篇文章主要介紹了JavaScript markdown 編輯器實(shí)現(xiàn)雙屏同步滾動(dòng),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08
js實(shí)現(xiàn)無(wú)限層級(jí)樹(shù)形數(shù)據(jù)結(jié)構(gòu)(創(chuàng)新算法)
這篇文章主要介紹了js實(shí)現(xiàn)無(wú)限層級(jí)樹(shù)形數(shù)據(jù)結(jié)構(gòu),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
JavaScript實(shí)現(xiàn)上下浮動(dòng)的窗口效果代碼
這篇文章主要介紹了JavaScript實(shí)現(xiàn)上下浮動(dòng)的窗口效果代碼,可實(shí)現(xiàn)自定義窗口在垂直方向上彈性移動(dòng)的效果,代碼備有完整的注釋說(shuō)明供讀者參考學(xué)習(xí),需要的朋友可以參考下2015-10-10
拖動(dòng)table標(biāo)題實(shí)現(xiàn)改變td的大小(css+js代碼)
拖動(dòng)列寬的表格table標(biāo)題同時(shí)改變td的大小,本文將以實(shí)例演示為大家呈現(xiàn),感興趣的朋友可以參考下哈,希望對(duì)你學(xué)習(xí)js或者css有所幫助2013-04-04
echarts整合多個(gè)類(lèi)似option的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于echarts整合多個(gè)類(lèi)似option的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
javascript實(shí)現(xiàn)控制div顏色
本文給大家分享的是使用javascript實(shí)現(xiàn)控制DIV背景色的代碼,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。2015-07-07
javascript數(shù)組去重3種方法的性能測(cè)試與比較
面試題中有一題數(shù)組去重,首先想到的是對(duì)象存鍵值的方法可是遇到不同類(lèi)型又能轉(zhuǎn)換成同樣的字符串的就完了接下來(lái)為大家介紹下雙重循環(huán)/存鍵值和類(lèi)型實(shí)現(xiàn)去重,感興趣的各位可以參考下哈2013-03-03

