简要代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
*{ margin:; padding:;}
li{ list-style:none;}
li{ float:left; width:200px; border:1px # solid; margin:10px;}
li img{ width:200px;}
p{ height:20px; border-bottom:1px # dashed;}
#div1{ width:600px; border:1px # solid; height:300px; clear:both;}
.box1{ float:left; width:200px;}
.box2{ float:left; width:200px;}
.box3{ float:left; width:200px;}
#allMoney{ float:right;}
</style>
</head>
<body>
<!-- 要拖动的书籍 -->
<ul>
<!-- draggable="true"含义是,div可以允许拖动 -->
<!-- 下面定义的格式是图片,名词,钱 -->
<li draggable="true">
<img src="img1.jpg" />
<p>javascript语言精粹</p>
<p>¥</p>
</li>
<li draggable="true">
<img src="img2.jpg" />
<p>javascript权威指南</p>
<p>¥</p>
</li>
<li draggable="true">
<img src="img3.jpg" />
<p>精通javascript</p>
<p>¥</p>
</li>
<li draggable="true">
<img src="img4.jpg" />
<p>DOM编程艺术</p>
<p>¥</p>
</li>
</ul>
<!-- 拖过来的书籍,这里动态追加,所以把测试文本注释掉 -->
<div id="div1">
<!--<p>
<span class="box1"></span>
<span class="box2">DOM编程艺术</span>
<span class="box3">¥</span>
</p>
<p>
<span class="box1"></span>
<span class="box2">DOM编程艺术</span>
<span class="box3">¥</span>
</p>
<div id="allMoney">¥</div>-->
</div>
</body>
</html>
<script> window.onload = function(){
var aLi = document.getElementsByTagName('li');//获取所有的li对象
var oDiv = document.getElementById('div1');//获取购买区域对象 var obj = {};
var iNum = ; //钱:用于计算的
var allMoney = null;//钱:带单位的 for(var i=;i<aLi.length;i++){ //遍历li以便给每个li定义拖动事件
aLi[i].ondragstart = function(ev){ var aP = this.getElementsByTagName('p');//获取拖动对象的所有P标签
//给转移数据以键值对的形式传输过去
ev.dataTransfer.setData('title',aP[].innerHTML);
ev.dataTransfer.setData('money',aP[].innerHTML); ev.dataTransfer.setDragImage(this,,);//设置拖动的时候显示的图片 };
}
<!-- dragover在拖拽期间触发,这里是组织浏览器默认事件,浏览器默认拖动图片后打开图片,阻止就不会了 -->
oDiv.ondragover = function(ev){
ev.preventDefault();
};
<!-- drop在拖拽区域时触发 -->
oDiv.ondrop = function(ev){
ev.preventDefault();
<!-- 获取发送过来的数据 -->
var sTitle = ev.dataTransfer.getData('title');
var sMoney = ev.dataTransfer.getData('money'); if( !obj[sTitle] ){ //空谁不正确,不为空则是正确的 var oP = document.createElement('p'); var oSpan = document.createElement('span');
oSpan.className = 'box1';
oSpan.innerHTML = ;
oP.appendChild( oSpan );
var oSpan = document.createElement('span');
oSpan.className = 'box2';
oSpan.innerHTML = sTitle;
oP.appendChild( oSpan ); var oSpan = document.createElement('span');
oSpan.className = 'box3';
oSpan.innerHTML = sMoney;
oP.appendChild( oSpan ); oDiv.appendChild( oP ); obj[sTitle] = ; }
else{ var box1 = document.getElementsByClassName('box1');
var box2 = document.getElementsByClassName('box2'); for(var i=;i<box2.length;i++){ if(box2[i].innerHTML == sTitle){
box1[i].innerHTML = parseInt(box1[i].innerHTML) + ;
} } } if(!allMoney){
allMoney = document.createElement('div');
allMoney.id = 'allMoney';
} iNum += parseInt(sMoney); allMoney.innerHTML = iNum + '¥'; oDiv.appendChild( allMoney ); }; }; </script>

简要截图:

HTML5——购物车的更多相关文章

  1. HTML5自学笔记[ 10 ]简单的购物车拖拽

    用html5拖拽功能实现了一个简单的购物车,样式简陋,得学学画画提高下审美了T^T: <!doctype html> <html> <head> <meta ...

  2. localStorage存值取值以及存取JSON,以及基于html5 localStorage的购物车

    localStorage.setItem("key","value");//存储变量名为key,值为value的变量 localStorage.key = &q ...

  3. 基于jQuery+HTML5加入购物车代码

    基于jQuery+HTML5加入购物车代码.这是一款基于jquery+html5实现的支持累加计价的网站购物车代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div ...

  4. HTML5 本地存储实现购物车功能

    在家休陪产假,无聊,看自己以前的项目,突然发现之前写的购物车都是用数据库实现的,数据库实现购物车原则上没什么问题,但是需要和数据库交互,这样无意之间降低了程序的效率.今天突发奇想,如果能用HTML5本 ...

  5. HTML5——同步购物车

    同步购物车,及打开两个或多个界面,选择购物时同步,让显示的内容一致,这样不至于购买出错. 核心:利用storage事件和localStorage本地存储实现 图片简单展示: <!DOCTYPE ...

  6. html5与js关于input[type='text']文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange和文本框的value点击全选状态onclick="select();"。做购物车页面时会要用到。

    关于input[type='text']文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange和文本框的点击全选状态onclick="s ...

  7. HTML5拖放加入购物车

    H5拖放事件巩固实例: 1.简单布局一下,商品信息放入一个ul中:div为购物车,后续会创建元素 <ul> <li draggable="true"> &l ...

  8. html5 拖放购物车

    1.本例中模仿了购物车添加的功能 主要运用了ondragstart / ondragover/ ondrag 功能 功能比较简单 遗留问题:火狐下图片拖进会被打开 <!doctype html& ...

  9. html5 拖放到购物车

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

随机推荐

  1. 2014年小结之sql语句优化

    之前接手一个数据统计处理的小程序,本来逻辑上并没什么,只是数据量略大,某些表的数据达到了千万级别..因为是统计,所以免不了各种连接各种查询,结果这个小程序写完后运行一次要1个小时..这的确有点出乎意料 ...

  2. iscroll.js的使用

    入门 Scroll是一个类,每个需要使用滚动功能的区域均要进行初始化.每个页面上的iScroll实例数目在设备的CPU和内存能承受的范围内是没有限制的. 尽可能保持DOM结构的简洁.iScroll使用 ...

  3. Java语法基础(二)----运算符

    一.运算符: 运算符包括下面几种: 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 三目运算符 最不常用的是位运算符,但也是最接近计算机底层的. 1.算术运算符 (1)+的几种用法:加法.正 ...

  4. Unity CombineChildren和MeshCombineUtility

    原理 Unity3D如何通过CombineChildren和MeshCombineUtility优化场景? 首先解释下联结的原理和意思:文档里说,显卡对于一个含100个面片的物体的和含1500个面片的 ...

  5. Linux安装、卸载软件

    在linux环境中,尤其是cenos中安装过一些软件,一般是二进制安装与源码安装,现小结一下linux中的安装与卸载. 一.通常Linux应用软件的安装包有三种: 1) tar包,如software- ...

  6. 转: 关于Linux与JVM的内存关系分析

    转自: http://tech.meituan.com/linux-jvm-memory.html Linux与JVM的内存关系分析 葛吒2014-08-29 10:00 引言 在一些物理内存为8g的 ...

  7. 16进制色值转换成RGB

    #51147f  转换成RGB ,5*16+1 ,1*16+4,7*16+15 #A9A9A9 转换成RGB ,A*16+9 ,A*16+9,A*16+9

  8. 用于json的 .ashx 小细节

    public void ProcessRequest(HttpContext context) { switch (action) { case "attribute_field_valid ...

  9. ftp虚拟账号登陆

    配置使用虚拟用户登录的FTP服务器,可以避免使用操作系统帐号作为FTP用户带来的一些安全问题,也便于通过数据库或其它程序来进行管理.废话不多说,这里记录下ftp虚拟账号登陆的部署过程及其中遇到的问题: ...

  10. VS的代码分析工具

    来自:[译]Visual Studio 2008 Code Metrics http://www.cnblogs.com/live41/archive/2010/02/08/1665627.html ...