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 写类方式之二
Jul 05 Javascript
关于图片的预加载过程中隐藏未知的
Dec 19 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
Sep 21 Javascript
js获取上传文件大小示例代码
Apr 10 Javascript
jquery京东商城双11焦点图多图广告特效代码分享
Sep 06 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
Dec 10 Javascript
8 行 Node.js 代码实现代理服务器
Dec 05 Javascript
Javascript中常用类型的格式化方法小结
Dec 26 Javascript
jQuery图片轮播功能实例代码
Jan 29 Javascript
JS实现课堂随机点名和顺序点名
Mar 09 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
Mar 28 Javascript
解决vue项目获取dom元素宽高总是不准确问题
Jul 29 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
PHP个人网站架设连环讲(三)
2006/10/09 PHP
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
PHP类的使用 实例代码讲解
2009/12/28 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
2014/12/17 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
又一个图片自动缩小的JS代码
2007/03/10 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
node.js中的events.emitter.removeListener方法使用说明
2014/12/10 Javascript
jQuery验证元素是否为空的两种常用方法
2015/03/17 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
2016/03/30 Javascript
Bootstrap选项卡与Masonry插件的完美结合
2016/07/06 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
解决vue-router进行build无法正常显示路由页面的问题
2018/03/06 Javascript
ES6关于Promise的用法详解
2018/05/07 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
使用cx_freeze把python打包exe示例
2014/01/24 Python
python+opencv实现动态物体识别
2018/01/09 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
PyQt5的相对布局管理的实现
2020/08/07 Python
css3 仿写阿里云水纹效果的示例代码
2018/02/10 HTML / CSS
Java基础知识面试要点
2016/07/29 面试题
英文简历中的自荐信范文
2013/12/14 职场文书
《满井游记》教学反思
2014/02/26 职场文书
今日说法观后感
2015/06/08 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫