基于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定义类和对象的几种方式
Nov 09 Javascript
JS与C#编码解码
Dec 03 Javascript
js 高效去除数组重复元素示例代码
Dec 19 Javascript
js隐式全局变量造成的bug示例代码
Apr 22 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
May 02 Javascript
浅谈window对象的scrollBy()方法
Jul 15 Javascript
微信支付 JS API支付接口详解
Jul 11 Javascript
jquery 校验中国身份证号码实例详解
Apr 11 jQuery
使用bootstrap插件实现模态框效果
May 10 Javascript
使用store来优化React组件的方法
Oct 23 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
Jan 23 Javascript
vue通过v-html指令渲染的富文本无法修改样式的解决方案
May 20 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 jquery 实现新闻标签分类与无刷新分页
2009/12/18 PHP
PHP测试程序运行时间的类
2012/02/05 PHP
php代码书写习惯优化小结
2013/06/20 PHP
Zend Framework处理Json数据方法详解
2016/12/09 PHP
Zend Framework动作控制器用法示例
2016/12/09 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
Laravel框架中自定义模板指令总结
2017/12/17 PHP
DD_belatedPNG,IE6下PNG透明解决方案(国外)
2010/12/06 Javascript
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
浅谈js中几种实用的跨域方法原理详解
2016/12/02 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
2017/02/22 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
Jquery中attr与prop的区别详解
2017/05/27 jQuery
jQuery:unbind方法的使用详解
2017/08/14 jQuery
JS运动特效之链式运动分析
2018/01/24 Javascript
详解如何使用koa实现socket.io官网的例子
2018/11/04 Javascript
详解Vue This$Store总结
2018/12/17 Javascript
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
介绍Python中的__future__模块
2015/04/27 Python
Python发送form-data请求及拼接form-data内容的方法
2016/03/05 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
Django关于admin的使用技巧和知识点
2020/02/10 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
Guess荷兰官网:美国服饰品牌
2020/01/22 全球购物
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
学习2014年全国两会心得体会
2014/03/12 职场文书
售房协议书范本2014
2014/10/23 职场文书
安全保证书
2015/01/16 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
教师研修随笔感言
2015/11/18 职场文书