基于JavaScript实现添加到购物车效果附源码下载


Posted in Javascript onAugust 22, 2016

我们有很多种方法实现将商品添加到购物车,通常的做法是点击“添加到购物车”按钮,会跳转到购物车,在购物车里可以点击“结算”按钮进行结算。而今天我给大家介绍一个更友好的解决方案。

基于JavaScript实现添加到购物车效果附源码下载

查看演示 下载源码

默认情况下,购物车是隐藏不可见的,当用户点击添加到购物车按钮后,商品信息会添加到购物车,购物车会以按钮的形式出现在页面右下角,点击按钮则会展开购物车,显示购物车中的商品信息,同时也可以对购物车中的商品进行删除或者结算等操作。用户也可以暂时关闭购物车继续购物。

HTML结构

HTML结构主要包括两部分,第一部分是商品列表中的“添加到购物车”按钮,如下代码,我们使用data-*属性将商品的id,图片、名称、价格等信息一并带上。

<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">添加到购物车</a>

第二部分是购物车,购物车部分包括触发购物车以及购物车统计部分 .cd-cart-trigger和购物车主体内容部分.cd-cart。

<div class="cd-cart-container empty"> 
<a href="#0" class="cd-cart-trigger"> 
购物车 
<ul class="count"> <!-- cart items count --> 
<li>0</li> 
<li>0</li> 
</ul> 
</a> 
<div class="cd-cart"> 
<div class="wrapper"> 
<header> 
<h2>购物车</h2> 
<span class="undo">已删除 <a href="#0">恢复</a></span> 
</header> 
<div class="body"> 
<ul> 
<!-- 此部分是购物车商品部分,由javascript动态插入 --> 
</ul> 
</div> 
<footer> 
<a href="#0" class="checkout"><em>结算 - ¥<span>0</span></em></a> 
</footer> 
</div> 
</div> 
</div>

在div.body元素里的ul列表默认是空的,它是用来显示购物车的商品列表信息的,它的大致结构如下,它是由Javascript动态插入的。

<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 +'">件数</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

本实例代码是基于jQuery,因此需要提前加载jQUery库文件。

当用户点击按钮.add-button后,触发函数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 +'">件数</label>'+select+'</div></div></div></li>'); 
cartList.prepend(productAdded); 
}else{ 
quantity = parseInt(quantity); 
$("#cd-product-"+proid).html(quantity+1); 
} 
}

以上所述是小编给大家介绍的基于JavaScript实现添加到购物车效果附源码下载,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Cookie 注入是怎样产生的
Apr 08 Javascript
往光标所在位置插入值的js代码
Sep 22 Javascript
javascript数组遍历for与for in区别详解
Dec 04 Javascript
js 获取元素在页面上的偏移量的方法汇总
Apr 13 Javascript
jquery+ajax请求且带返回值的代码
Aug 12 Javascript
jQuery EasyUI Pagination实现分页的常用方法
May 21 Javascript
浅析BootStrap中Modal(模态框)使用心得
Dec 24 Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
Jan 06 Javascript
Node.js+Express+MySql实现用户登录注册功能
Jul 10 Javascript
微信小程序实现留言板
Oct 31 Javascript
vue自定义树状结构图的实现方法
Oct 18 Javascript
前端JS获取URL参数的4种方法总结
Apr 05 Javascript
利用原生JS自动生成文章标题树的实例
Aug 22 #Javascript
jQuery使用deferreds串行多个ajax请求
Aug 22 #Javascript
JavaScript代码里的判断小结
Aug 22 #Javascript
angularjs 源码解析之scope
Aug 22 #Javascript
js表单元素checked、radio被选中的几种方法(详解)
Aug 22 #Javascript
js严格模式总结(分享)
Aug 22 #Javascript
xtemplate node.js 的使用方法实例解析
Aug 22 #Javascript
You might like
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
PHP中CURL方法curl_setopt()函数的参数分享
2013/01/19 PHP
php导入excel文件到mysql数据库的方法
2015/01/14 PHP
PHP实现事件机制的方法
2015/07/10 PHP
php实现的农历算法实例
2015/08/11 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
2013/05/27 Javascript
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
JavaScript模拟实现继承的方法
2015/03/30 Javascript
JS验证逗号隔开可以是中文字母数字
2016/04/22 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
关于Promise 异步编程的实例讲解
2017/09/01 Javascript
React如何避免重渲染
2018/04/10 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
vue 自动化路由实现代码
2019/09/03 Javascript
微信小程序实现同时上传多张图片
2020/02/03 Javascript
javascript实现简单留言板案例
2021/02/09 Javascript
Python GAE、Django导出Excel的方法
2008/11/24 Python
Python入门篇之数字
2014/10/20 Python
Python验证码识别处理实例
2015/12/28 Python
Python反转序列的方法实例分析
2018/03/21 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
Senreve官网:美国旧金山的奢侈手袋品牌
2019/03/21 全球购物
大学四年的个人自我评价
2014/01/14 职场文书
商务考察邀请函范文
2014/01/21 职场文书
料理师求职信
2014/01/30 职场文书
付款委托书范本
2014/04/04 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
保护环境倡议书100字
2014/05/19 职场文书
财务工作个人总结
2015/02/27 职场文书
通知书大全
2015/04/27 职场文书
Python异常类型以及处理方法汇总
2021/06/05 Python
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL