JS实现的简单拖拽购物车功能示例【附源码下载】


Posted in Javascript onJanuary 03, 2018

本文实例讲述了JS实现的简单拖拽购物车功能。分享给大家供大家参考,具体如下:

<html>
<head>
<meta charset="utf-8" />
<title>使用拖放API将商品拖入购物车</title>
<style>
body {
  font-size:12px
}
.liT{
  border-bottom:solid 1px #ccc;
  background-color:#eee;
  font-weight:bold
}
  .liF{
  float:left;
  margin-right:5px;
}
ul{
  list-style-type:none;
  padding:0px;
  height:106px;
  width:330px
}
ul li{
  height:23px
}
ul li img{
  width:68px;
  height:96px;
  border:solid 1px #ccc;
  padding:3px
}
ul li span{
  float:left;
  width:70px;
  padding:5px;
}
</style>
<script type="text/javascript">
function $$(id) {
  return document.getElementById(id);
}
//自定义页面加载时调用的函数
function pageload() {
  //获取全部的图书商品
  var Drag = document.getElementsByTagName("img");
  //遍历每一个图书商品
  for (var intI = 0; intI < Drag.length; intI++) {
    //为每一个商品添加被拖放元素的dragstart事件
    Drag[intI].addEventListener("dragstart",
    function(e) {
      var objDtf = e.dataTransfer;
      objDtf.setData("text/html", addCart(this.title, this.alt, 1));
    },
    true);
  }
  var Cart = $$("ulCart");
  //添加目标元素的drop事件
  Cart.addEventListener("drop",
  function(e) {
    var objDtf = e.dataTransfer;
    var strHTML = objDtf.getData("text/html");
    var num=top_();
    Cart.innerHTML += strHTML;
    document.getElementById("num").innerHTML=num;
    var price =document.getElementById("price").innerHTML;
    document.getElementById("sum").innerHTML=num*price;
    e.preventDefault();
    e.stopPropagation();
  },
  false);
}
//添加页面的dragover事件
document.ondragover = function(e) {
  //阻止默认方法,取消拒绝被拖放
  e.preventDefault();
}
//添加页面drop事件
document.ondrop = function(e) {
  //阻止默认方法,取消拒绝被拖放
  e.preventDefault();
}
//自定义向购物车中添加记录的函数
function addCart(a, b, c) {
  var strHTML = "<li class='liC'>";
  strHTML += "<span>" + a + "</span>";
  strHTML += "<span id=\"price\">" + b + "</span>";
  strHTML += "<span id=\"num\">" + c + "</span>";
  strHTML += "<span id=\"sum\">" + b * c + "</span>";
  strHTML += "</li>";
  return strHTML;
}
//提示输入框
function top_(){
   var str=prompt("请输入要购买的数量",1);
    return str;
}
</script>
</head>
<body onLoad="pageload();">
 <ul>
  <li class="liF">
    <img src="images/img02.jpg" id="img02"
       alt="42" title="2006作品" draggable="true">
  </li>
  <li class="liF">
    <img src="images/img03.jpg" id="img03"
       alt="56" title="2008作品" draggable="true">
  </li>
  <li class="liF">
    <img src="images/2.jpg" id="img04"
       alt="52" title="2010作品" draggable="true">
  </li>
  <li class="liF">
    <img src="images/1.jpg" id="img05"
       alt="59" title="2011作品" draggable="true">
  </li>
 </ul>
 <ul id="ulCart">
  <li class="liT">
    <span>书名</span>
    <span>定价</span>
    <span>数量</span>
    <span>总价</span>
  </li>
 </ul>
</body>
</html>

运行效果:

JS实现的简单拖拽购物车功能示例【附源码下载】

JS实现的简单拖拽购物车功能示例【附源码下载】

附:完整实例代码点击此处本站下载

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
用倒置滤镜把div倒置,再把table倒置。
Jul 31 Javascript
关于viewport,Ext.panel和Ext.form.panel的关系
May 07 Javascript
JS类的封装及实现代码
Dec 02 Javascript
javascript suggest效果 自动完成实现代码分享
Feb 17 Javascript
快速学习AngularJs HTTP响应拦截器
Dec 31 Javascript
jQuery+PHP实现上传裁剪图片
Jun 29 jQuery
puppeteer实现html截图的示例代码
Jan 10 Javascript
详解vue中使用protobuf踩坑记
May 07 Javascript
JavaScript实现单英文金山打字通
Jul 24 Javascript
mui js控制开关状态、修改switch开关的值方法
Sep 03 Javascript
d3.js实现图形拖拽
Dec 19 Javascript
JS前端使用canvas实现扩展物体类和事件派发
Aug 05 Javascript
基于js 各种排序方法和sort方法的区别(详解)
Jan 03 #Javascript
vue项目中用cdn优化的方法
Jan 03 #Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
Jan 03 #Javascript
利用原生js实现html5小游戏之打砖块(附源码)
Jan 03 #Javascript
js判断文件类型大小并给出提示的实现方法
Jan 03 #Javascript
js登录滑动验证的实现(不滑动无法登陆)
Jan 03 #Javascript
Angular实现下拉框模糊查询功能示例
Jan 03 #Javascript
You might like
解密ThinkPHP3.1.2版本之模板继承
2014/06/19 PHP
php隐藏IP地址后两位显示为星号的方法
2014/11/21 PHP
帝国cms常用标签汇总
2015/07/06 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
比较搞笑的js陷阱题
2010/02/07 Javascript
jQuery学习笔记之jQuery的DOM操作
2010/12/22 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
5分钟打造简易高效的webpack常用配置
2017/07/04 Javascript
Bootstrap栅格系统的使用详解
2017/10/30 Javascript
webpack源码之loader机制详解
2018/04/06 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
Python 学习笔记
2008/12/27 Python
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
Python 字符串池化的前提
2020/07/03 Python
Html5游戏开发之乒乓Ping Pong游戏示例(一)
2013/01/21 HTML / CSS
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
大一学生假期实习的自我评价
2013/10/12 职场文书
物流专业自荐信
2014/05/23 职场文书
测控技术自荐信
2014/06/05 职场文书
小学安全汇报材料
2014/08/14 职场文书
党员批评与自我批评(5篇)
2014/09/23 职场文书
考试作弊检讨书1000字(5篇)
2014/10/19 职场文书
加强作风建设心得体会
2014/10/22 职场文书
党员争先创优承诺书
2015/01/20 职场文书
工厂清洁工岗位职责
2015/02/14 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
入党转正介绍人意见
2015/06/03 职场文书
Python 批量下载阴阳师网站壁纸
2021/05/19 Python