基于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 相关文章推荐
Jquery插件 easyUI属性汇总
Jan 19 Javascript
JavaScript中setAttribute用法介绍
Jul 20 Javascript
当jQuery1.7遇上focus方法的问题
Jan 26 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
May 31 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
Jul 22 Javascript
浅谈JS运算符&amp;&amp;和|| 及其优先级
Aug 10 Javascript
JSONP跨域请求
Mar 02 Javascript
微信小程序实战之自定义模态弹窗(8)
Apr 18 Javascript
详解vue中axios的使用与封装
Mar 20 Javascript
node运行js获得输出的三种方式示例详解
Jul 02 Javascript
js面试题之异步问题的深入理解
Sep 20 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
Dec 07 Vue.js
利用原生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 多进程 解决难题
2009/06/22 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
在线游戏大家来找茬II
2006/09/30 Javascript
jquery ajax 同步异步的执行示例代码
2010/06/23 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
2016/06/03 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
理解javascript中的Function.prototype.bind的方法
2017/02/03 Javascript
Vue通过input筛选数据
2020/10/26 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
在django中使用自定义标签实现分页功能
2017/07/04 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
python实现超市扫码仪计费
2018/05/30 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
带你学习Python如何实现回归树模型
2020/07/16 Python
python调用win32接口进行截图的示例
2020/11/11 Python
python实现控制台输出颜色
2021/03/02 Python
HTML5计时器小例子
2013/10/15 HTML / CSS
Internet体系结构
2014/12/21 面试题
个人自我评价分享
2013/12/20 职场文书
期末自我鉴定
2014/01/23 职场文书
2014年公司迎新年活动方案
2014/02/24 职场文书
公司司机岗位职责范本
2014/03/03 职场文书
小学生期末评语大全
2014/04/21 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
交通事故委托书范本
2014/09/28 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
2015年仓库工作总结
2015/04/09 职场文书
运动会通讯稿50字
2015/07/20 职场文书
辞职信怎么写?
2019/05/21 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
php实例化对象的实例方法
2021/11/17 PHP
Win11 BitLocker 驱动器加密
2022/04/19 数码科技