`
hiuman
  • 浏览: 52251 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

javascript 实现购物车页面

阅读更多
跟商城有关系的网站,难免会有购物车的结账界面。
我用javascript实现了增加数量/减少数量,实时计算总金额,删除该商品,选中商品/反选商品/全选/全反选...的操作。
欢迎指点!~
效果如图:(图片有点大,可以到这里看  http://hiuman.iteye.com/picture/136625




用到的素材:加号 减号 商品图 删除图标 选中的图标和没选中的图标


代码:
<body onselectstart="return false;" style="-moz-user-select:none;">
	<table>
		<thead>
			<tr>
                <th><input type="checkbox"></th>
                <th>商品信息</th>
                <th>数量</th>
                <th>单价<span>(元)</span></th>
                <th>金额<span>(元)</span></th>
                <th>操作</th>
            </tr>
		</thead>
		<tbody>
			<tr>
                <td><input type="checkbox"></td>
                <td>
                    <img src="./cart/good.png">
                    <p>小呀小苹果(一)</p>
                </td>
                <td><span class="add"></span><span class="num">3</span><span class="dec"></span></td>
                <td class="per">¥<span>1900</span></td>
                <td class="money">¥<span>3800</span></td>
                <td><a class="del"></a></td>
            </tr>
            <tr>
                <td><input type="checkbox"></td>
                <td>
                    <img src="./cart/good.png">
                    <p>小呀小苹果(二)</p>
                </td>
                <td><span class="add"></span><span class="num">3</span><span class="dec"></span></td>
                <td class="per">¥<span>1900</span></td>
                <td class="money">¥<span>3800</span></td>
                <td><a class="del"></a></td>
            </tr>
            <tr>
                <td><input type="checkbox"></td>
                <td>
                    <img src="./cart/good.png">
                    <p>小呀小苹果(三)</p>
                </td>
                <td><span class="add"></span><span class="num">3</span><span class="dec"></span></td>
                <td class="per">¥<span>1900</span></td>
                <td class="money">¥<span>3800</span></td>
                <td><a class="del"></a></td>
            </tr>
		</tbody>
		<tfoot>
			<tr>
				<td></td>
				<td>已选:<span class="choosen">0</span>件&nbsp;&nbsp;共<span class="total">0</span>元</td>
				<td></td>
				<td></td>
				<td></td>
				<td><button class="sure">结账</button></td>
			</tr>
		</tfoot>
	</table>
</body>



*{ margin: 0;padding: 0;list-style: none;font-size: 16px;font-family: 'arial';font-weight: normal; }
table{ width: 1020px;margin: 0 auto;border: 1px solid gray;margin-top: 30px;border-collapse: collapse;text-align: center; }
table tr{ height: 100px;line-height: 100px; }

thead{ background: black;color: white; }
thead tr,tfoot tr{ height: 40px;line-height: 40px; }

table img{ float: left;width: 65px;height: 65px;margin-top: 18px; }
table input[type="checkbox"]{ width: 32px;height: 32px;-webkit-appearance: none;background: url(./cart/checkbox.png) no-repeat center center;vertical-align:middle }

tbody td:nth-child(1){ width: 7%; }
tbody td:nth-child(2){ width: 35%; }
tbody td:nth-child(3){ width: 13%; }
tbody td:nth-child(4){ width: 15%; }
tbody td:nth-child(5){ width: 15%; }
tbody td:nth-child(6){ width: 15%; }
tbody tr{ border-bottom: 1px solid black; }

table .add,table .dec,table .del{ display: inline-block;width: 14px;height: 21px;cursor: pointer; }
table .add{ background: url(./cart/add.png) no-repeat center center; }
table .dec{ background: url(./cart/dec.png) no-repeat center center; }
table .num{ display: inline-block;width: 57px;margin: 0 18px;height: 39px;line-height: 39px;border: 1px solid #b0b0b0;background: #d4d4d4; }
table .del{ width: 18px;background: url(./cart/del.png) no-repeat; }
table .money,table .total{ color: red; }
table .choosen{ color: #3083ff; }
table .sure{ width: 100%;height: 100%;background: #3083ff;color: #fff;border: none;cursor: pointer; }

input[type='checkbox']:checked{ background: url(./cart/check.png) no-repeat center center; }


window.onload = function(){
	// 按顺序为:list个数 加 数量 减 删 选择框 金额 单价 选中的个数
	// list个数 不包括thead
	var oListNumber = document.getElementsByClassName('add').length;
	var oAdds = document.getElementsByClassName('add');
	var oNums = document.getElementsByClassName('num');
	var oDecs = document.getElementsByClassName('dec');
	var oDels = document.getElementsByClassName('del');
	var oInputs = document.getElementsByTagName('input');
	var oMoneys = document.getElementsByClassName('money');
	var oPers = document.getElementsByClassName('per');
	var oAllChecked = false; //全选
	var othercheckbox =0; //除了全选以外的其他checkbox

	changeMoney();

	// checkbox点击事件
	for(var i =0;i<oInputs.length;i++){
		(function(i){
			oInputs[i].onclick = function(){
				// 判断除了全选以外的checkbox
				if(i!=0){
					if(oInputs[i].checked ==true){
						othercheckbox++
					}else{
						othercheckbox--
					}
				}
				// 判断是否全选
				if(othercheckbox == oListNumber){
					oInputs[0].checked = true;
				}else{
					oInputs[0].checked = false;
				}
				// 判断是否选择了全选checkbox
				if(i==0){
					oAllChecked = !oAllChecked;
					for(var j=0;j<oInputs.length;j++){
						oInputs[j].checked=oAllChecked;
					}
					if(oAllChecked){
						othercheckbox = oListNumber
					}else{
						othercheckbox = 0;
					}
				}
				changeTotal()
			}
		})(i)
	}

	// add事件
	for(var i =0;i<oAdds.length;i++){
		(function(i){
			oAdds[i].onclick = function(){
				oNums[i].innerText = parseInt(oNums[i].innerText) +1;
				changeMoney()
				changeTotal()
			}
		})(i)
	}

	// dec事件
	for(var i =0;i<oDecs.length;i++){
		(function(i){
			oDecs[i].onclick = function(){
				if(oNums[i].innerText != '0'){
					oNums[i].innerText = parseInt(oNums[i].innerText) -1;
				}
				changeMoney()
				changeTotal()
			}
		})(i)
	}

	// add事件和dec事件伴随的金额改变事件
	function changeMoney(){
		var oPerSpan =[];  //单价
		var oMoneySpan=[];  //金额
		for(var i=0;i<oListNumber;i++){
			oPerSpan[i] = oPers[i].getElementsByTagName('span')[0].innerText;
			oMoneySpan[i] = oMoneys[i].getElementsByTagName('span')[0];
			oMoneySpan[i].innerText = (parseInt(oNums[i].innerText)*parseInt(oPerSpan[i]))
		}
	}

	// del事件
	for(var i =0;i<oDels.length;i++){
		(function(i){
			oDels[i].onclick = function(){
				var thisdom = oDels[i].parentNode.parentNode;
				var tbody = thisdom.parentNode;
				tbody.removeChild(thisdom)
				changeTotal()
			}
		})(i)
	}

	// 总数量 总金额
	function changeTotal(){
		var oChoosen = document.getElementsByClassName('choosen')[0];
		var oTotal = document.getElementsByClassName('total')[0];
		var sumNUM = 0
		var sumTOTAL =0

		for(var i=1;i<oInputs.length;i++){
			if(oInputs[i].checked){
				sumNUM = parseInt(oNums[i-1].innerText) + parseInt(sumNUM);
				sumTOTAL = parseInt(oMoneys[i-1].getElementsByTagName('span')[0].innerText) +parseInt(sumTOTAL)
			}

		}

		oChoosen.innerText = sumNUM;
		oTotal.innerText = sumTOTAL;

	}

}
  • 大小: 35.2 KB
  • 大小: 10.9 KB
分享到:
评论

相关推荐

    当当购物车页面_当当购物车页面_html网页购物车_js当当购物车_

    在购物车页面中,JavaScript的主要作用包括: - 动态更新:当用户修改商品数量或选择商品时,JavaScript可以实时更新总价和商品总数。 - 本地存储:使用`localStorage`或`sessionStorage`来保存用户的购物车信息...

    javascript实现购物车效果.zip

    实现效果: ... javascript实现购物车效果,通过原生js代码实现购物车效果,一般电商网站或者商城网站会使用到购物车的效果,点击加减,总价随之变化,选中商品,点击删除,可以删除选中的商品!

    购物车 静态页面 含javascript

    5. **交互效果**:为了提升用户体验,购物车页面可能包含一些视觉效果,比如动画、提示信息等,这些都是通过JavaScript库(如jQuery)实现的。 6. **表单验证**:虽然静态页面不会涉及服务器端验证,但JavaScript...

    一个简单的当当网购物车页面,可以实现简单购物

    在“练习3:操作当当购物车页面”这个压缩包文件中,可能包含了实现以上功能的相关代码文件,如HTML、CSS、JavaScript文件,以及可能的测试数据或文档。通过学习和分析这些文件,开发者可以深入理解一个购物车页面的...

    用JavaScript开发购物车(含源代码)

    在本项目中,我们将深入探讨如何使用JavaScript实现一个基本的购物车系统,同时结合Asp.net作为后端支持。 首先,JavaScript是客户端脚本语言,它在用户的浏览器上运行,为网页提供实时交互。在购物车场景中,...

    原生JavaScript实现购物车

    在本项目中,"原生JavaScript实现购物车"是一个典型的前端开发示例,它展示了如何使用JavaScript语言来创建一个交互式的购物车系统。这个系统可能包括添加商品、修改商品数量、计算总价等基本功能。接下来,我们将...

    JavaScript实现购物车功能

    在JavaScript实现购物车功能的过程中,会涉及到多个关键知识点,这些技术是前端开发中不可或缺的部分。以下将详细阐述这些知识点: 1. **购物车计算价格**:这是购物车的核心功能之一,需要对每件商品的价格与数量...

    HTML简单的实现购物车

    在创建购物车页面时,我们需要以下几个关键元素: 1. 商品列表:HTML可以使用`&lt;ul&gt;`和`&lt;li&gt;`标签创建一个无序列表,每个列表项代表一个商品,包含商品的图片、名称、价格和添加到购物车的按钮。 2. 购物车显示区:...

    web-原生js实现购物车

    以上就是使用原生JavaScript实现购物车功能的基本步骤。当然,实际项目中可能还需要考虑更多细节,如商品库存检查、商品选择状态的管理、购物车数据的持久化等。通过这个例子,你可以了解到如何利用JavaScript实现...

    javascript实现简易购物车(高手勿喷)

    在本项目中,我们主要探讨如何使用JavaScript实现一个简单的购物车功能。JavaScript是一种广泛用于网页交互的编程语言,尤其在动态网页开发中扮演着重要角色。在这个实例中,我们将关注如何利用JavaScript操作HTML...

    javascript 购物车(图片拖动)

    这个“JavaScript 购物车(图片拖动)”项目,旨在教你如何利用JavaScript实现一个允许用户通过拖动图片来添加商品到虚拟购物车的功能。这种交互方式既直观又有趣,能够吸引用户的注意力并提升其在网站上的停留时间...

    web购物车(javascript实现)

    本项目“web购物车(javascript实现)”聚焦于使用JavaScript这一客户端脚本语言来构建这一关键功能。JavaScript是一种广泛使用的编程语言,特别是在web前端开发中,它能为网页增添交互性和动态性。 首先,我们需要...

    Jquery练习1:制作简易的当当购物车页面.zip

    在本实践项目中,我们将利用jQuery库来创建一个简单的当当购物车页面。jQuery是一个流行的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互等任务。通过这个练习,我们可以深入理解jQuery的基本用法...

    javascript实现购物车

    在JavaScript实现购物车功能的过程中,我们通常会遇到多个关键知识点,包括数据存储、商品操作、数量管理、总价计算以及用户交互。以下是对这些知识点的详细解释: 1. **数据存储**:购物车中的商品信息需要被持久...

    Javascript操纵Cookie实现购物车程序.txt

    ### JavaScript操纵Cookie实现购物车程序 #### 概述 在电子商务网站中,购物车功能是不可或缺的一部分。通过JavaScript操作Cookie可以实现一个简单的购物车系统。本文档将详细解析如何使用JavaScript来操纵Cookie...

    Javascript网页编程技术购物车的修改

    文件"order.html"可能就是一个包含了上述逻辑的HTML页面,展示了如何利用JavaScript实现购物车功能。在这个页面中,用户可以看到购物车中的商品列表、数量、总价等信息,并且能够进行添加、删除和修改商品的操作。 ...

    Javascript 增强页面效果第二章项目训练

    在JavaScript的世界里,增强页面效果是一项关键技能,它能让用户与网页有更丰富的交互体验。在"Javascript 增强页面效果第二章项目训练"中,我们将深入探讨如何利用JavaScript来提升网页的视觉表现和用户体验。这个...

    【JavaScript源代码】原生JavaScript实现购物车.docx

    ### JavaScript 实现购物车功能详解 #### 一、概述 在现代Web开发中,实现一个交互式的购物车功能是电商网站的基本需求之一。通过使用原生JavaScript,我们可以在不依赖任何框架的情况下完成这一任务。本篇文章将...

    基于HTML5的静态购物车页面.zip

    在购物车页面中,JQuery可能用于实现商品的添加和删除功能,通过AJAX异步更新页面,无需刷新整个页面。例如,用户点击“添加到购物车”按钮时,JQuery可以捕获事件,将商品信息发送到服务器,并动态更新购物车列表。...

    基于JavaScript实现购物车功能

    在JavaScript实现购物车功能时,我们通常会涉及到前端交互、数据存储、动态更新以及计算等核心知识点。以下是对这些知识点的详细说明: 1. **前端交互**:在本例中,用户通过点击“我的购物车”按钮(`#btAdd`)来...

Global site tag (gtag.js) - Google Analytics