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 相关文章推荐
javascript全局变量封装模块实现代码
Nov 28 Javascript
Google (Local) Search API的简单使用介绍
Nov 28 Javascript
Backbone.js的一些使用技巧
Jul 01 Javascript
直接拿来用的15个jQuery代码片段
Sep 23 Javascript
解析如何利用iframe标签以及js制作时钟
Dec 08 Javascript
bootstrap侧边栏圆点导航
Jan 11 Javascript
详解vue.js移动端导航navigationbar的封装
Jul 05 Javascript
Vue.js2.0中的变化小结
Oct 24 Javascript
详解react、redux、react-redux之间的关系
Apr 11 Javascript
layui 监听表格复选框选中值的方法
Aug 15 Javascript
JS加密插件CryptoJS实现的Base64加密示例
Aug 16 Javascript
Vue.js更改调试地址端口号的实例
Sep 19 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
php 高效率写法 推荐
2010/02/21 PHP
php实例化一个类的具体方法
2019/09/19 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
利用JS实现数字增长
2016/07/28 Javascript
JavaScript兼容性总结之获取非行间样式案例
2016/08/07 Javascript
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
canvas学习之API整理笔记(二)
2016/12/29 Javascript
js实现选项卡内容切换以及折叠和展开效果【推荐】
2017/01/08 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
微信小程序实现选项卡功能
2020/06/19 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
vue实现微信获取用户信息的方法
2019/03/21 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python的re模块应用实例
2014/09/26 Python
深入理解python中的闭包和装饰器
2016/06/12 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
宝宝周岁宴答谢词
2014/01/26 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
开业主持词
2014/03/21 职场文书
车辆年审委托书范本
2014/09/18 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
详解Redis基本命令与使用场景
2021/06/01 Redis