- 浏览: 52254 次
- 性别:
- 来自: 广州
文章分类
最新评论
跟商城有关系的网站,难免会有购物车的结账界面。
我用javascript实现了增加数量/减少数量,实时计算总金额,删除该商品,选中商品/反选商品/全选/全反选...的操作。
欢迎指点!~
效果如图:(图片有点大,可以到这里看 http://hiuman.iteye.com/picture/136625)
用到的素材:加号 减号 商品图 删除图标 选中的图标和没选中的图标
代码:
我用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>件 共<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; } }
发表评论
-
菜单栏和内容
2017-03-10 09:35 553常见的菜单栏+内容界面。欢迎指点。 效果图: 可以戳这里 ... -
得到两数相除的百分数
2016-12-20 15:42 785原理: Math.ceil() //向上取整 Mat ... -
可拖动的轮播图
2016-11-07 14:55 1639(涉及到swiper.min.js,swiper.min.cs ... -
比较全的屏幕信息
2016-11-07 14:13 429比较全的屏幕信息。 function getInfo ... -
选项卡
2016-11-07 13:47 661欢迎指点! 效果图: 有两种办法实现: 原理一:多个ht ... -
javascript写的轮播图
2016-11-07 12:15 509欢迎指点! 先放上效果图: 鼠标移入界面后: 图片有 ... -
原生JavaScript实现jQuery的hasClass,removeClass,addClass,toggleClass
2016-10-13 17:56 1107介绍: 1、hasClass:判断DOM元素是否存在类。 2 ... -
阻止事件冒泡
2016-09-18 15:55 506JavaScript停止冒泡和阻止浏览器默认行为 事件兼容 ... -
实时监听输入框值变化
2016-09-13 10:35 3056(1)使用 jQuery 的话,同时绑定 oninput 和 ... -
js/jQuery实现类似百度搜索功能
2016-09-12 17:00 1150html代码: <!DOCTYPE html> ... -
左侧菜单栏右侧内容(改进,有js效果)
2016-09-09 10:25 4492(如有错敬请指点,以下是我工作中遇到并且解决的问题)上一篇文章 ... -
js生成一周内的日期+周几
2016-09-08 10:41 1344(如有错敬请指点,以下是我工作中遇到并且解决的问题) 效果 ... -
定义类或对象
2016-09-07 15:17 447学习总结: 工厂方式 ...
相关推荐
在购物车页面中,JavaScript的主要作用包括: - 动态更新:当用户修改商品数量或选择商品时,JavaScript可以实时更新总价和商品总数。 - 本地存储:使用`localStorage`或`sessionStorage`来保存用户的购物车信息...
实现效果: ... javascript实现购物车效果,通过原生js代码实现购物车效果,一般电商网站或者商城网站会使用到购物车的效果,点击加减,总价随之变化,选中商品,点击删除,可以删除选中的商品!
5. **交互效果**:为了提升用户体验,购物车页面可能包含一些视觉效果,比如动画、提示信息等,这些都是通过JavaScript库(如jQuery)实现的。 6. **表单验证**:虽然静态页面不会涉及服务器端验证,但JavaScript...
在“练习3:操作当当购物车页面”这个压缩包文件中,可能包含了实现以上功能的相关代码文件,如HTML、CSS、JavaScript文件,以及可能的测试数据或文档。通过学习和分析这些文件,开发者可以深入理解一个购物车页面的...
在本项目中,我们将深入探讨如何使用JavaScript实现一个基本的购物车系统,同时结合Asp.net作为后端支持。 首先,JavaScript是客户端脚本语言,它在用户的浏览器上运行,为网页提供实时交互。在购物车场景中,...
在本项目中,"原生JavaScript实现购物车"是一个典型的前端开发示例,它展示了如何使用JavaScript语言来创建一个交互式的购物车系统。这个系统可能包括添加商品、修改商品数量、计算总价等基本功能。接下来,我们将...
在JavaScript实现购物车功能的过程中,会涉及到多个关键知识点,这些技术是前端开发中不可或缺的部分。以下将详细阐述这些知识点: 1. **购物车计算价格**:这是购物车的核心功能之一,需要对每件商品的价格与数量...
在创建购物车页面时,我们需要以下几个关键元素: 1. 商品列表:HTML可以使用`<ul>`和`<li>`标签创建一个无序列表,每个列表项代表一个商品,包含商品的图片、名称、价格和添加到购物车的按钮。 2. 购物车显示区:...
以上就是使用原生JavaScript实现购物车功能的基本步骤。当然,实际项目中可能还需要考虑更多细节,如商品库存检查、商品选择状态的管理、购物车数据的持久化等。通过这个例子,你可以了解到如何利用JavaScript实现...
在本项目中,我们主要探讨如何使用JavaScript实现一个简单的购物车功能。JavaScript是一种广泛用于网页交互的编程语言,尤其在动态网页开发中扮演着重要角色。在这个实例中,我们将关注如何利用JavaScript操作HTML...
这个“JavaScript 购物车(图片拖动)”项目,旨在教你如何利用JavaScript实现一个允许用户通过拖动图片来添加商品到虚拟购物车的功能。这种交互方式既直观又有趣,能够吸引用户的注意力并提升其在网站上的停留时间...
本项目“web购物车(javascript实现)”聚焦于使用JavaScript这一客户端脚本语言来构建这一关键功能。JavaScript是一种广泛使用的编程语言,特别是在web前端开发中,它能为网页增添交互性和动态性。 首先,我们需要...
在本实践项目中,我们将利用jQuery库来创建一个简单的当当购物车页面。jQuery是一个流行的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互等任务。通过这个练习,我们可以深入理解jQuery的基本用法...
在JavaScript实现购物车功能的过程中,我们通常会遇到多个关键知识点,包括数据存储、商品操作、数量管理、总价计算以及用户交互。以下是对这些知识点的详细解释: 1. **数据存储**:购物车中的商品信息需要被持久...
### JavaScript操纵Cookie实现购物车程序 #### 概述 在电子商务网站中,购物车功能是不可或缺的一部分。通过JavaScript操作Cookie可以实现一个简单的购物车系统。本文档将详细解析如何使用JavaScript来操纵Cookie...
文件"order.html"可能就是一个包含了上述逻辑的HTML页面,展示了如何利用JavaScript实现购物车功能。在这个页面中,用户可以看到购物车中的商品列表、数量、总价等信息,并且能够进行添加、删除和修改商品的操作。 ...
在JavaScript的世界里,增强页面效果是一项关键技能,它能让用户与网页有更丰富的交互体验。在"Javascript 增强页面效果第二章项目训练"中,我们将深入探讨如何利用JavaScript来提升网页的视觉表现和用户体验。这个...
### JavaScript 实现购物车功能详解 #### 一、概述 在现代Web开发中,实现一个交互式的购物车功能是电商网站的基本需求之一。通过使用原生JavaScript,我们可以在不依赖任何框架的情况下完成这一任务。本篇文章将...
在购物车页面中,JQuery可能用于实现商品的添加和删除功能,通过AJAX异步更新页面,无需刷新整个页面。例如,用户点击“添加到购物车”按钮时,JQuery可以捕获事件,将商品信息发送到服务器,并动态更新购物车列表。...
在JavaScript实现购物车功能时,我们通常会涉及到前端交互、数据存储、动态更新以及计算等核心知识点。以下是对这些知识点的详细说明: 1. **前端交互**:在本例中,用户通过点击“我的购物车”按钮(`#btAdd`)来...