基于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的Cookies
Jan 16 Javascript
用JS操作FRAME中的IFRAME及其内容的实现代码
Jul 26 Javascript
理解Javascript_11_constructor实现原理
Oct 18 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
Jan 03 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
Sep 26 Javascript
jquery插件jTimer(jquery定时器)使用方法
Dec 23 Javascript
javascript写的异步加载js文件函数(支持数组传参)
Jun 07 Javascript
jquery读写cookie操作实例分析
Dec 24 Javascript
打造自己的jQuery插件入门教程
Sep 23 Javascript
老生常谈JS中的继承及实现代码
Jul 06 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
Aug 09 jQuery
angularjs的单选框+ng-repeat的实现方法
Sep 12 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
全国FM电台频率大全 - 22 重庆市
2020/03/11 无线电
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
php绘制一条直线的方法
2015/01/24 PHP
smarty模板引擎之分配数据类型
2015/03/30 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
PHPMAILER实现PHP发邮件功能
2018/04/18 PHP
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
js 小数取整的函数
2010/05/10 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
微信小程序mpvue点击按钮获取button值的方法
2019/05/29 Javascript
layer iframe 设置关闭按钮的方法
2019/09/12 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
Javascript实现鼠标移入方向感知
2020/06/24 Javascript
解决vue路由name同名,路由重复的问题
2020/08/05 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
利用Python的装饰器解决Bottle框架中用户验证问题
2015/04/24 Python
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2015/08/10 Python
python实现实时监控文件的方法
2016/08/26 Python
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
python tkinter实现彩球碰撞屏保
2019/07/30 Python
python带参数打包exe及调用方式
2019/12/21 Python
python实现微信打飞机游戏
2020/03/24 Python
Python 执行矩阵与线性代数运算
2020/08/01 Python
建筑设计专业求职自我评价
2014/03/02 职场文书
十八届三中全会感言
2014/03/10 职场文书
安全生产承诺书
2014/03/26 职场文书
行政部经理助理岗位职责
2014/06/15 职场文书
英语教学课后反思
2016/02/15 职场文书
Element实现动态表格的示例代码
2021/08/02 Javascript