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 相关文章推荐
百度 popup.js 完美修正版非常的不错 脚本之家推荐
Apr 17 Javascript
jquery实现点击页面计算点击次数
Jan 23 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
May 12 Javascript
在JavaScript中模拟类(class)及类的继承关系
May 20 Javascript
ES6所改良的javascript“缺陷”问题
Aug 23 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
Dec 08 Javascript
JavaScript中 this 指向问题深度解析
Feb 21 Javascript
浅谈Vue.js中ref ($refs)用法举例总结
Dec 19 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
Apr 30 Javascript
微信小程序实现点击卡片 翻转效果
Sep 04 Javascript
实例讲解React 组件生命周期
Jul 08 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
Jan 07 Vue.js
基于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配置文件php.ini的路径的方法
2014/08/20 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
PHP示例演示发送邮件给某个邮箱
2019/04/03 PHP
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
2017/08/23 jQuery
初探JavaScript 面向对象(推荐)
2017/09/03 Javascript
angularjs实现猜大小功能
2017/10/23 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
基于jQuery实现无缝轮播与左右点击效果
2018/05/13 jQuery
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
Vue使用轮询定时发送请求代码
2020/08/10 Javascript
js实现幻灯片轮播图
2020/08/14 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
EM算法的python实现的方法步骤
2018/01/02 Python
Python for循环生成列表的实例
2018/06/15 Python
python多线程下信号处理程序示例
2019/05/31 Python
解决import tensorflow as tf 出错的原因
2020/04/16 Python
Python中常用的os操作汇总
2020/11/05 Python
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
Book Depository澳大利亚:世界领先的专业在线书店之一
2018/12/27 全球购物
同学聚会主持词
2014/03/18 职场文书
2014年党务公开方案
2014/05/08 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
指导老师鉴定意见
2015/06/05 职场文书
公司借款担保书
2015/09/22 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
幼儿园教师教学反思
2016/03/02 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
vscode中使用npm安装babel的方法
2021/08/02 Javascript