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 相关文章推荐
JS正则表达式获取分组内容的方法详解
Nov 15 Javascript
jQuery中delegate与on的用法与区别示例介绍
Dec 20 Javascript
scrollWidth,clientWidth,offsetWidth的区别
Jan 13 Javascript
js学习笔记之事件处理模型
Oct 31 Javascript
js+canvas实现动态吃豆人效果
Mar 22 Javascript
微信浏览器禁止页面下拉查看网址实例详解
Jun 28 Javascript
Node.js readline 逐行读取、写入文件内容的示例
Mar 01 Javascript
vue-cli开发环境实现跨域请求的方法
Apr 07 Javascript
vue中的数据绑定原理的实现
Jul 02 Javascript
Element-UI踩坑之Pagination组件的使用
Oct 29 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
Dec 07 Javascript
javascript实现超好看的3D烟花特效
Jan 01 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与javascript对多项选择的处理
2006/10/09 PHP
php简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
PHP性能测试工具xhprof安装与使用方法详解
2018/04/29 PHP
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
jQuery timers计时器简单应用说明
2010/10/28 Javascript
JSF中confirm弹出框的用法示例介绍
2014/01/07 Javascript
浅析js预加载/延迟加载
2014/09/25 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
pyside写ui界面入门示例
2014/01/22 Python
Python机器学习之决策树算法
2017/12/22 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
python 求10个数的平均数实例
2019/12/16 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
LightInTheBox西班牙站点:全球商品在线采购
2016/09/22 全球购物
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
基于Python 函数和方法的区别说明
2021/03/24 Python
优秀经理获奖感言
2014/03/04 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
婚前协议书范本两则
2014/10/16 职场文书
2015年公民道德宣传日活动总结
2015/03/23 职场文书
2015高中教师个人工作总结
2015/07/21 职场文书
婚庆答谢词大全
2015/09/29 职场文书
JavaScript使用canvas绘制坐标和线
2021/04/28 Javascript
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL
公历12个月名称的由来
2022/04/12 杂记
如何基于python实现单目三维重建详解
2022/06/25 Python