HTML+CSS+JavaScript实现网络购物车

这篇具有很好参考价值的文章主要介绍了HTML+CSS+JavaScript实现网络购物车。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HTML+CSS+JavaScript实现网络购物车

1 页面布局

购物车由一个table标签和一个div标签构成。案例在Chrome浏览器运行效果,如图所示。

table标签共有5行6列,第1行是表头,第2-5行的每一行都代表一个商品,依次用td标签存放商品的勾选框、商品缩略图及名称、商品单价、商品增减操作按钮以及小计、删除按钮等。div标签存放已选商品数量、合计金额和提交订单按钮。以只有1个商品为例,HTML示例代码如下所示。CSS代码详见本书源码。

1 <table id="cartTable">			
2  <tr>
3     <th><label><input class="check-all check" type="checkbox">全选</label></th>
4     <th>商品</th>
5     <th>单价</th>
6     <th>数量</th>
7     <th>小计</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>数据结构-清华大学出版社</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">合计:¥<span id="priceTotal">0</span></div>
26	 <div class="fr selected" id="selected">	已选商品<span id="selectedTotal">0</span>件</div>
27 </div>

上述代码中,第1-22行代码定义了表格标签;第2-9行定义了表头,第1行的第1个单元格是全选框;第10-21行代码定义了第2行,共有5个单元格,依次存放商品的勾选框、商品缩略图及名称、商品单价、商品增减操作按钮以及小计、删除按钮等;第23-27行代码定义了div标签,依次存放已选商品数量、合计金额和提交订单按钮。 

2 工具函数

(1)用户单击任一行内的商品增减操作按钮,同一行的小计金额都会根据数量的变化而变化,因此应封装函数实现金额小计功能。示例代码如下。

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 = '-';
		}
}

上述代码中定义了函数getSubtotal(tr),它根据单价和数量计算金额小计,并显示在页面相应的单元格中。如果数量不为1,则将显示商品减少操作符“-”。形式参数tr代表进行小计的行对象。

(2)用户选中某个商品或全选商品时,已选商品数量和合计都会根据选中商品的变化而变化,因此应封装函数实现合计功能。示例代码如下。

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); 	
}

上述代码定义了函数getTotal(),它遍历累加每行商品的数量和金额小计,计算出已选商品数量和合计金额,并显示在页面相应的位置。

3 勾选商品

用户单击某行的勾选框时,如果勾选框状态是未选中,则取消全选,然后调用

getTotal()函数计算并显示已选商品数量和合计金额;用户单击全选框时,所有行内勾选框状态和全选框状态保持一致,然后调用getTotal()函数计算并显示已选商品数量和合计金额。

示例代码如下。

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行代码循环遍历所有的checkbox,为每一个checkbox绑定单击事件及其处理程序;第3-7行代码设置所有行内勾选框状态和全选框状态保持一致;第8-10行代码判断如果当前勾选框状态未选中,则取消全选;第11行代码调用getTotal()函数计算并显示已选商品数量和合计金额。

4 增减和删除商品

表格的每一行内有减少商品、增加商品和删除按钮等,可以通过事件委托,为它们的父元素tr对象绑定单击事件及其处理程序。单击某行内的商品增减操作按钮,同一行的小计金额都会根据数量的变化而变化;单击删除按钮将当前行删除。示例代码如下。

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行代码循环遍历所有的tr,为每一个tr绑定单击事件及其处理程序;第3-6行代码通过事件对象的target属性获取事件源,并获取事件源的class属性和当前行的已购商品数量;第7-24行代码通过switch语句判断,如果事件源是增加商品按钮,则将已购商品数量加1,并调用getSubtotal(this)进行小计;如果事件源是减少商品按钮,并且已购商品数量大于1,则将已购商品数量减1,并调用getSubtotal(this)进行小计;如果事件源是删除商品按钮,则询问用户是否将当前行从购物车删除;第25行代码调用getTotal()函数计算并显示已选商品数量和合计金额。


视频讲解:HTML+CSS+JavaScript实现网络购物车网页特效_哔哩哔哩_bilibili

源码:清华大学出版社-图书详情-《JavaScript前端开发与实例教程(微课视频版)》文章来源地址https://www.toymoban.com/news/detail-450463.html

到了这里,关于HTML+CSS+JavaScript实现网络购物车的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JavaScript】实现简易购物车

    💻【JavaScript】实现简易购物车 🏠专栏:有趣实用案例 👀个人主页:繁星学编程🍁 🧑个人简介:一个不断提高自我的平凡人🚀 🔊分享方向:目前主攻前端,其他知识也会阶段性分享🍀 👊格言:☀️没有走不通的路,只有不敢走的人!☀️ 👉让我们一起进步,一起成

    2024年02月04日
    浏览(60)
  • 【学习笔记46】JavaScript购物车的实现

    1、将通过数据重构页面 查询数据, 渲染页面 2、全选 选中全选按钮后, 根据全选按钮的选中状态, 修改所有商品的选中状态 重新渲染视图 3、清空购物车 清空商品数据 重新渲染视图 4、结算 找到所有选中的商品 计算所有选中商品各自的总价 计算所有选中商品的总价之和 5、

    2024年02月08日
    浏览(44)
  • 微信小程序购物车页面实现

    目录 32.商品加入购物车逻辑实现(前端) 33.购物车页面收货地址实现 34.购物车商品列表显示实现 37.购物车商品复选框选中业务处理 38.购物车全选复选框选中业务处理 39.购物车商品数量编辑实现 40.购物车商品数量为0判定是否删除 42.商品详情立即购买逻辑实现 1.先在produc

    2024年02月11日
    浏览(42)
  • 使用JavaScript实现动态生成并管理购物车的深入解析

    在当前的互联网时代,电子商务已成为我们日常生活的重要组成部分。购物车作为电子商务网站的核心功能之一,其实现方式对于用户体验至关重要。本文将深入探讨如何使用JavaScript实现一个动态生成并管理购物车的功能,并详细介绍其实现细节,同时附上相关代码。 购物

    2024年01月24日
    浏览(93)
  • ECSHOP购物车页面显示商品简单描述的实现方法

    最近看到有朋友有这方面的需求,就整理了一下,写出来供有同样需求的朋友备用,这里说的商品简单描述,不是商品的详细信息,而是后台编辑商品时在“其他信息”标签栏填写的那个“商品简单描述”,即goods_brief字段,修改前请注意备份相关的系统文件。 修改lib_order

    2023年04月16日
    浏览(47)
  • 使用Vue.js框架的指令和事件绑定实现一个购物车的页面布局

    使用了v-model指令来实现全选/全不选的功能,当全选框被点击时,isAllChecked的值会被改变。 使用了v-if指令来判断购物车中是否有商品,如果有商品则渲染商品列表,否则显示购物车为空的提示。 使用了v-for指令来遍历datalist数组,渲染每个商品项。 使用了@change事件来监听商

    2024年02月12日
    浏览(55)
  • Html购物车

    目录 一.登陆界面 二.注册界面 三.购物车界面  我的登陆界面用正则判断,昵称输入框的输入要求时3到6个大写或小写字母, placeholder时信息提示 ,它在输入框中显示,当你在输入框中输入值时,就会消失  我写了非空判断,在没有输入值就点击登陆时,就会弹出提示框(

    2024年02月08日
    浏览(49)
  • 使用JavaScript和Vue.js框架开发的电子商务网站,实现商品展示和购物车功能

    引言: 随着互联网的快速发展和智能手机的普及,电子商务行业正迎来一个全新的时代。越来越多的消费者选择网上购物,而不再局限于传统的实体店。这种趋势不仅仅是改变了消费者的习惯购物,也给企业带来了巨大的商机。为了不断满足消费者的需求,电子商务网站需要

    2024年02月15日
    浏览(59)
  • 商城小程序(8.购物车页面)

    本章主要完成pages下的cart购物页面编写 定义如下UI结构 美化样式 通过 mapState 辅助函数,将Store中的cart数组映射到当前页面中使用: 在UI结构中,通过v-for渲染自定义组件my-goods 打开my-goods.vue组件,为商品左侧图片区域添加radio足迹 并美化UI ,使radio组件和image组件左右布局

    2024年01月23日
    浏览(61)
  • HTML购物车示例(勾选、删除、添加和结算功能)

    以下是一个简单的HTML购物车示例,包含勾选、删除、添加和结算功能。结算功能使用PHP实现,可以获取选中商品的ID。 以下是一个简单的HTML购物车示例,包含勾选、删除、添加和结算功能。结算功能使用PHP实现,可以获取选中商品的ID`以下是一个简单的HTML购物车示例,包含

    2024年02月04日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包