基于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 相关文章推荐
IE6与IE7中,innerHTML获取param的区别
Mar 15 Javascript
js getBoundingClientRect() 来获取页面元素的位置
Nov 25 Javascript
IE下写xml文件的两种方式(fso/saveAs)
Aug 05 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
Oct 16 Javascript
javascript删除数组重复元素的方法汇总
Jun 24 Javascript
jquery+css实现下拉列表功能
Sep 03 jQuery
JavaScript内置对象math,global功能与用法实例分析
Jun 10 Javascript
layui动态渲染生成select的option值方法
Sep 23 Javascript
vue 使用鼠标滚动加载数据的例子
Oct 31 Javascript
Jquery让form表单异步提交代码实现
Nov 14 jQuery
记一次react前端项目打包优化的方法
Mar 30 Javascript
VUE项目实现主题切换的多种方法
Nov 26 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/05 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
2011/08/11 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
PHP调用MySQL存储过程并返回值的方法
2014/12/26 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
php判断用户是否关注微信公众号
2016/07/22 PHP
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
JS获取url链接字符串 location.href
2013/12/23 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
2016/06/08 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
Javascript刷新页面的实例
2017/09/23 Javascript
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
2019/11/07 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
Python创建模块及模块导入的方法
2015/05/27 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
python实现对变位词的判断方法
2020/04/05 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
2020/09/03 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
台湾百利市购物中心:e-Payless
2017/08/16 全球购物
新英格兰最大的特色礼品连锁店:The Paper Store
2018/07/23 全球购物
经典c++面试题六
2012/01/18 面试题
幼儿园儿童节主持词
2014/03/21 职场文书
股份转让协议书
2014/04/12 职场文书
艺术学院毕业生求职信
2014/07/09 职场文书
教师素质教育心得体会
2016/01/19 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书