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 相关文章推荐
用jquery实现学校的校历(asp.net+jquery ui 1.72)
Jan 01 Javascript
javascript (用setTimeout而非setInterval)
Dec 28 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
Jun 20 Javascript
jquery.cookie用法详细解析
Dec 18 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
Mar 04 Javascript
利用CSS3在Angular中实现动画
Jan 15 Javascript
JavaScript实现url参数转成json形式
Sep 25 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
Jul 19 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
Aug 31 Javascript
基于JS开发微信网页录音功能的实例代码
Apr 30 Javascript
JS JQuery获取data-*属性值方法解析
Sep 01 jQuery
详解Js模块化的作用原理和方案
Apr 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
web方式ftp
2006/10/09 PHP
PHP如何解决网站大流量与高并发的问题
2011/06/25 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
destoon调用自定义模板及样式的公告栏
2014/06/21 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
jQuery获取多种input值的简单实现方法
2016/06/20 Javascript
js获取指定字符前/后的字符串简单实例
2016/10/27 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
基于jquery实现二级联动效果
2017/03/30 jQuery
原生js封装添加class,删除class的实例
2017/11/06 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
javascript 构建模块化开发过程解析
2019/09/11 Javascript
JavaScript或jQuery 获取option value值方法解析
2020/05/12 jQuery
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
2021/01/25 Javascript
python计算auc指标实例
2017/07/13 Python
python实现媒体播放器功能
2018/02/11 Python
对python3 urllib包与http包的使用详解
2018/05/10 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
python 的 openpyxl模块 读取 Excel文件的方法
2019/09/09 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
Python爬虫实现自动登录、签到功能的代码
2020/08/20 Python
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
学校后勤人员职责
2013/12/27 职场文书
写给保洁员表扬信
2014/01/08 职场文书
申请任职学生会干部自荐书范文
2014/02/13 职场文书
创先争优承诺书范文
2014/03/31 职场文书
局火灾防控工作方案
2014/05/25 职场文书
文艺晚会开场白
2015/05/29 职场文书
python生成随机数、随机字符、随机字符串
2021/04/06 Python
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL
【DOTA2】当街暴打?PSG LGD vs VG - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA