国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

HTML+CSS+JavaScript實(shí)現(xiàn)網(wǎng)絡(luò)購(gòu)物車

這篇具有很好參考價(jià)值的文章主要介紹了HTML+CSS+JavaScript實(shí)現(xiàn)網(wǎng)絡(luò)購(gòu)物車。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

HTML+CSS+JavaScript實(shí)現(xiàn)網(wǎng)絡(luò)購(gòu)物車

1 頁(yè)面布局

購(gòu)物車由一個(gè)table標(biāo)簽和一個(gè)div標(biāo)簽構(gòu)成。案例在Chrome瀏覽器運(yùn)行效果,如圖所示。

table標(biāo)簽共有5行6列,第1行是表頭,第2-5行的每一行都代表一個(gè)商品,依次用td標(biāo)簽存放商品的勾選框、商品縮略圖及名稱、商品單價(jià)、商品增減操作按鈕以及小計(jì)、刪除按鈕等。div標(biāo)簽存放已選商品數(shù)量、合計(jì)金額和提交訂單按鈕。以只有1個(gè)商品為例,HTML示例代碼如下所示。CSS代碼詳見(jiàn)本書(shū)源碼。

1 <table id="cartTable">			
2  <tr>
3     <th><label><input class="check-all check" type="checkbox">全選</label></th>
4     <th>商品</th>
5     <th>單價(jià)</th>
6     <th>數(shù)量</th>
7     <th>小計(jì)</th>
8     <th>操作</th>
9  </tr>		
10	<tr class="on">
11    <td class="checkbox"><input class="check-one check" type="checkbox"></td>
12    <td class="goods"><img src="images/1.jpg"><span>數(shù)據(jù)結(jié)構(gòu)-清華大學(xué)出版社</span></td>
13    <td class="price">28</td>
14    <td class="count">
15       <span class="reduce"></span>
16       <input class="count-input" type="text" value="1">
17       <span class="add">+</span>
18    </td>
19    <td class="subtotal">28</td>
20    <td class="operation"><span class="delete">刪除</span></td>
21  </tr>  
22 </table>
23 <div class="foot" id="foot">		
24	 <div class="fr closing">提交訂單</div>		
25	 <div class="fr total">合計(jì):¥<span id="priceTotal">0</span></div>
26	 <div class="fr selected" id="selected">	已選商品<span id="selectedTotal">0</span>件</div>
27 </div>

上述代碼中,第1-22行代碼定義了表格標(biāo)簽;第2-9行定義了表頭,第1行的第1個(gè)單元格是全選框;第10-21行代碼定義了第2行,共有5個(gè)單元格,依次存放商品的勾選框、商品縮略圖及名稱、商品單價(jià)、商品增減操作按鈕以及小計(jì)、刪除按鈕等;第23-27行代碼定義了div標(biāo)簽,依次存放已選商品數(shù)量、合計(jì)金額和提交訂單按鈕。?

2 工具函數(shù)

(1)用戶單擊任一行內(nèi)的商品增減操作按鈕,同一行的小計(jì)金額都會(huì)根據(jù)數(shù)量的變化而變化,因此應(yīng)封裝函數(shù)實(shí)現(xiàn)金額小計(jì)功能。示例代碼如下。

function getSubtotal(tr) {
		var cells = tr.cells;
		var price = cells[2]; 
		var countInput = tr.getElementsByTagName('input')[1]; 
		var subtotal = (parseInt(countInput.value) * parseFloat(price.innerHTML)).toFixed(2);
		cells[4].innerHTML = subtotal;
		var span = tr.getElementsByTagName('span')[1];
		if (countInput.value == 1) {
			span.innerHTML = '';
		}else{
			span.innerHTML = '-';
		}
}

上述代碼中定義了函數(shù)getSubtotal(tr),它根據(jù)單價(jià)和數(shù)量計(jì)算金額小計(jì),并顯示在頁(yè)面相應(yīng)的單元格中。如果數(shù)量不為1,則將顯示商品減少操作符“-”。形式參數(shù)tr代表進(jìn)行小計(jì)的行對(duì)象。

(2)用戶選中某個(gè)商品或全選商品時(shí),已選商品數(shù)量和合計(jì)都會(huì)根據(jù)選中商品的變化而變化,因此應(yīng)封裝函數(shù)實(shí)現(xiàn)合計(jì)功能。示例代碼如下。

function getTotal() {	
		var seleted = 0;
		var price = 0;		
		for (var i = 0, len = tr.length; i < len; i++) {
			if (tr[i].getElementsByTagName('input')[0].checked) { 
				seleted += parseInt(tr[i].getElementsByTagName('input')[1].value);
				price += parseFloat(tr[i].cells[4].innerHTML); 	
			}			
		}
		selectedTotal.innerHTML = seleted;
		priceTotal.innerHTML = price.toFixed(2); 	
}

上述代碼定義了函數(shù)getTotal(),它遍歷累加每行商品的數(shù)量和金額小計(jì),計(jì)算出已選商品數(shù)量和合計(jì)金額,并顯示在頁(yè)面相應(yīng)的位置。

3 勾選商品

用戶單擊某行的勾選框時(shí),如果勾選框狀態(tài)是未選中,則取消全選,然后調(diào)用

getTotal()函數(shù)計(jì)算并顯示已選商品數(shù)量和合計(jì)金額;用戶單擊全選框時(shí),所有行內(nèi)勾選框狀態(tài)和全選框狀態(tài)保持一致,然后調(diào)用getTotal()函數(shù)計(jì)算并顯示已選商品數(shù)量和合計(jì)金額。

示例代碼如下。

1 for(var i = 0; i < checkInputs.length; i++ ){
2		checkInputs[i].onclick = function () { 
3			if (this.className.indexOf('check-all') >= 0) { 
4				for (var j = 0; j < checkInputs.length; j++) {
5					checkInputs[j].checked = this.checked;
6				}
7			}
8			if (!this.checked) { 				
9					checkAllInput.checked = false;			
10			}
11			getTotal();
12		}
13	}

上述代碼中,第1-2行代碼循環(huán)遍歷所有的checkbox,為每一個(gè)checkbox綁定單擊事件及其處理程序;第3-7行代碼設(shè)置所有行內(nèi)勾選框狀態(tài)和全選框狀態(tài)保持一致;第8-10行代碼判斷如果當(dāng)前勾選框狀態(tài)未選中,則取消全選;第11行代碼調(diào)用getTotal()函數(shù)計(jì)算并顯示已選商品數(shù)量和合計(jì)金額。

4 增減和刪除商品

表格的每一行內(nèi)有減少商品、增加商品和刪除按鈕等,可以通過(guò)事件委托,為它們的父元素tr對(duì)象綁定單擊事件及其處理程序。單擊某行內(nèi)的商品增減操作按鈕,同一行的小計(jì)金額都會(huì)根據(jù)數(shù)量的變化而變化;單擊刪除按鈕將當(dāng)前行刪除。示例代碼如下。

1 for (var i = 0; i < tr.length; i++) {
2	   tr[i].onclick = function (e) {		
3			var el = e.target
4			var cls = el.className; 
5			var countInput = this.getElementsByTagName('input')[1];
6			var value = parseInt(countInput.value); 
7			switch (cls) {
8				case 'add': 
9					countInput.value = value + 1;
10					getSubtotal(this);
11					break;
12				case 'reduce': 
13					if (value > 1) {
14						countInput.value = value - 1;
15						getSubtotal(this);
16					}
17					break;
18				case 'delete':
19					var conf = confirm('確定刪除此商品嗎?');
20					if (conf) {
21						this.parentNode.removeChild(this);
22					}
23					break;
24			}
25			getTotal();
26		}
27 }

上述代碼中,第1-2行代碼循環(huán)遍歷所有的tr,為每一個(gè)tr綁定單擊事件及其處理程序;第3-6行代碼通過(guò)事件對(duì)象的target屬性獲取事件源,并獲取事件源的class屬性和當(dāng)前行的已購(gòu)商品數(shù)量;第7-24行代碼通過(guò)switch語(yǔ)句判斷,如果事件源是增加商品按鈕,則將已購(gòu)商品數(shù)量加1,并調(diào)用getSubtotal(this)進(jìn)行小計(jì);如果事件源是減少商品按鈕,并且已購(gòu)商品數(shù)量大于1,則將已購(gòu)商品數(shù)量減1,并調(diào)用getSubtotal(this)進(jìn)行小計(jì);如果事件源是刪除商品按鈕,則詢問(wèn)用戶是否將當(dāng)前行從購(gòu)物車刪除;第25行代碼調(diào)用getTotal()函數(shù)計(jì)算并顯示已選商品數(shù)量和合計(jì)金額。


視頻講解:HTML+CSS+JavaScript實(shí)現(xiàn)網(wǎng)絡(luò)購(gòu)物車網(wǎng)頁(yè)特效_嗶哩嗶哩_bilibili

源碼:清華大學(xué)出版社-圖書(shū)詳情-《JavaScript前端開(kāi)發(fā)與實(shí)例教程(微課視頻版)》文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-450463.html

到了這里,關(guān)于HTML+CSS+JavaScript實(shí)現(xiàn)網(wǎng)絡(luò)購(gòu)物車的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【JavaScript】實(shí)現(xiàn)簡(jiǎn)易購(gòu)物車

    【JavaScript】實(shí)現(xiàn)簡(jiǎn)易購(gòu)物車

    ??【JavaScript】實(shí)現(xiàn)簡(jiǎn)易購(gòu)物車 ??專欄:有趣實(shí)用案例 ??個(gè)人主頁(yè):繁星學(xué)編程?? ??個(gè)人簡(jiǎn)介:一個(gè)不斷提高自我的平凡人?? ??分享方向:目前主攻前端,其他知識(shí)也會(huì)階段性分享?? ??格言:??沒(méi)有走不通的路,只有不敢走的人!?? ??讓我們一起進(jìn)步,一起成

    2024年02月04日
    瀏覽(22)
  • 【學(xué)習(xí)筆記46】JavaScript購(gòu)物車的實(shí)現(xiàn)

    【學(xué)習(xí)筆記46】JavaScript購(gòu)物車的實(shí)現(xiàn)

    1、將通過(guò)數(shù)據(jù)重構(gòu)頁(yè)面 查詢數(shù)據(jù), 渲染頁(yè)面 2、全選 選中全選按鈕后, 根據(jù)全選按鈕的選中狀態(tài), 修改所有商品的選中狀態(tài) 重新渲染視圖 3、清空購(gòu)物車 清空商品數(shù)據(jù) 重新渲染視圖 4、結(jié)算 找到所有選中的商品 計(jì)算所有選中商品各自的總價(jià) 計(jì)算所有選中商品的總價(jià)之和 5、

    2024年02月08日
    瀏覽(23)
  • 微信小程序購(gòu)物車頁(yè)面實(shí)現(xiàn)

    微信小程序購(gòu)物車頁(yè)面實(shí)現(xiàn)

    目錄 32.商品加入購(gòu)物車邏輯實(shí)現(xiàn)(前端) 33.購(gòu)物車頁(yè)面收貨地址實(shí)現(xiàn) 34.購(gòu)物車商品列表顯示實(shí)現(xiàn) 37.購(gòu)物車商品復(fù)選框選中業(yè)務(wù)處理 38.購(gòu)物車全選復(fù)選框選中業(yè)務(wù)處理 39.購(gòu)物車商品數(shù)量編輯實(shí)現(xiàn) 40.購(gòu)物車商品數(shù)量為0判定是否刪除 42.商品詳情立即購(gòu)買邏輯實(shí)現(xiàn) 1.先在produc

    2024年02月11日
    瀏覽(22)
  • 使用JavaScript實(shí)現(xiàn)動(dòng)態(tài)生成并管理購(gòu)物車的深入解析

    在當(dāng)前的互聯(lián)網(wǎng)時(shí)代,電子商務(wù)已成為我們?nèi)粘I畹闹匾M成部分。購(gòu)物車作為電子商務(wù)網(wǎng)站的核心功能之一,其實(shí)現(xiàn)方式對(duì)于用戶體驗(yàn)至關(guān)重要。本文將深入探討如何使用JavaScript實(shí)現(xiàn)一個(gè)動(dòng)態(tài)生成并管理購(gòu)物車的功能,并詳細(xì)介紹其實(shí)現(xiàn)細(xì)節(jié),同時(shí)附上相關(guān)代碼。 購(gòu)物

    2024年01月24日
    瀏覽(28)
  • ECSHOP購(gòu)物車頁(yè)面顯示商品簡(jiǎn)單描述的實(shí)現(xiàn)方法

    最近看到有朋友有這方面的需求,就整理了一下,寫(xiě)出來(lái)供有同樣需求的朋友備用,這里說(shuō)的商品簡(jiǎn)單描述,不是商品的詳細(xì)信息,而是后臺(tái)編輯商品時(shí)在“其他信息”標(biāo)簽欄填寫(xiě)的那個(gè)“商品簡(jiǎn)單描述”,即goods_brief字段,修改前請(qǐng)注意備份相關(guān)的系統(tǒng)文件。 修改lib_order

    2023年04月16日
    瀏覽(26)
  • 使用Vue.js框架的指令和事件綁定實(shí)現(xiàn)一個(gè)購(gòu)物車的頁(yè)面布局

    使用了v-model指令來(lái)實(shí)現(xiàn)全選/全不選的功能,當(dāng)全選框被點(diǎn)擊時(shí),isAllChecked的值會(huì)被改變。 使用了v-if指令來(lái)判斷購(gòu)物車中是否有商品,如果有商品則渲染商品列表,否則顯示購(gòu)物車為空的提示。 使用了v-for指令來(lái)遍歷datalist數(shù)組,渲染每個(gè)商品項(xiàng)。 使用了@change事件來(lái)監(jiān)聽(tīng)商

    2024年02月12日
    瀏覽(23)
  • Html購(gòu)物車

    Html購(gòu)物車

    目錄 一.登陸界面 二.注冊(cè)界面 三.購(gòu)物車界面 ?我的登陸界面用正則判斷,昵稱輸入框的輸入要求時(shí)3到6個(gè)大寫(xiě)或小寫(xiě)字母, placeholder時(shí)信息提示 ,它在輸入框中顯示,當(dāng)你在輸入框中輸入值時(shí),就會(huì)消失 ?我寫(xiě)了非空判斷,在沒(méi)有輸入值就點(diǎn)擊登陸時(shí),就會(huì)彈出提示框(

    2024年02月08日
    瀏覽(23)
  • 使用JavaScript和Vue.js框架開(kāi)發(fā)的電子商務(wù)網(wǎng)站,實(shí)現(xiàn)商品展示和購(gòu)物車功能

    引言: 隨著互聯(lián)網(wǎng)的快速發(fā)展和智能手機(jī)的普及,電子商務(wù)行業(yè)正迎來(lái)一個(gè)全新的時(shí)代。越來(lái)越多的消費(fèi)者選擇網(wǎng)上購(gòu)物,而不再局限于傳統(tǒng)的實(shí)體店。這種趨勢(shì)不僅僅是改變了消費(fèi)者的習(xí)慣購(gòu)物,也給企業(yè)帶來(lái)了巨大的商機(jī)。為了不斷滿足消費(fèi)者的需求,電子商務(wù)網(wǎng)站需要

    2024年02月15日
    瀏覽(27)
  • 商城小程序(8.購(gòu)物車頁(yè)面)

    商城小程序(8.購(gòu)物車頁(yè)面)

    本章主要完成pages下的cart購(gòu)物頁(yè)面編寫(xiě) 定義如下UI結(jié)構(gòu) 美化樣式 通過(guò) mapState 輔助函數(shù),將Store中的cart數(shù)組映射到當(dāng)前頁(yè)面中使用: 在UI結(jié)構(gòu)中,通過(guò)v-for渲染自定義組件my-goods 打開(kāi)my-goods.vue組件,為商品左側(cè)圖片區(qū)域添加radio足跡 并美化UI ,使radio組件和image組件左右布局

    2024年01月23日
    瀏覽(20)
  • HTML購(gòu)物車示例(勾選、刪除、添加和結(jié)算功能)

    HTML購(gòu)物車示例(勾選、刪除、添加和結(jié)算功能)

    以下是一個(gè)簡(jiǎn)單的HTML購(gòu)物車示例,包含勾選、刪除、添加和結(jié)算功能。結(jié)算功能使用PHP實(shí)現(xiàn),可以獲取選中商品的ID。 以下是一個(gè)簡(jiǎn)單的HTML購(gòu)物車示例,包含勾選、刪除、添加和結(jié)算功能。結(jié)算功能使用PHP實(shí)現(xiàn),可以獲取選中商品的ID`以下是一個(gè)簡(jiǎn)單的HTML購(gòu)物車示例,包含

    2024年02月04日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包