基于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 相关文章推荐
javascript 去字符串空格终极版(支持utf8)
Nov 14 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
Jun 28 Javascript
js 获取浏览器版本以此来调整CSS的样式
Jun 03 Javascript
jquery让指定的元素闪烁显示的方法
Mar 17 Javascript
下雪了 javascript实现雪花飞舞
Aug 02 Javascript
第一次接触Bootstrap框架
Oct 24 Javascript
基于Layer+jQuery的自定义弹框
May 26 Javascript
解析Javascript单例模式概念与实例
Dec 05 Javascript
基于three.js编写的一个项目类示例代码
Jan 05 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
Jan 12 Javascript
Vue2.X 通过AJAX动态更新数据
Jul 17 Javascript
Vue+abp微信扫码登录的实现代码示例
Jan 06 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 Ajax实现页面无刷新发表评论
2007/01/02 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
2016/06/28 PHP
thinkPHP事务操作简单案例分析
2019/10/17 PHP
js操作输入框提示信息且响应鼠标事件
2014/03/25 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
JS代码触发事件代码实例
2020/01/02 Javascript
小程序自定义模板实现吸顶功能
2020/01/08 Javascript
Vue管理系统前端之组件拆分封装详解
2020/08/23 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
详解在Python中处理异常的教程
2015/05/24 Python
python友情链接检查方法
2015/07/08 Python
全面了解python字符串和字典
2016/07/07 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
2018/03/05 Python
对Python 网络设备巡检脚本的实例讲解
2018/04/22 Python
如何基于Python创建目录文件夹
2019/12/31 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
2020/03/06 Python
Python函数的迭代器与生成器的示例代码
2020/06/18 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
纽约21世纪百货官网:Century 21
2016/08/27 全球购物
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
城野医生官方海外旗舰店:风靡亚洲毛孔收敛水
2018/04/26 全球购物
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
美国高端牛仔品牌:Silver Jeans
2019/12/12 全球购物
银行求职推荐信范文
2013/11/30 职场文书
12岁生日感言
2014/01/21 职场文书
幼儿园教师培训方案
2014/02/04 职场文书
临床护理求职信
2014/04/26 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
干部考核工作总结
2015/08/12 职场文书