HTML5自学笔记[ 10 ]简单的购物车拖拽
用html5拖拽功能实现了一个简单的购物车,样式简陋,得学学画画提高下审美了T^T:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>购物车拖拽</title> <style> *{ margin:0; padding:0;} #proList{ overflow:hidden;} #proList li{ list-style:none; float:left; margin:10px; padding:10px; border:1px solid #CCC;} #proList img{ width:200px; height:200px;} #proList p{ height:30px; text-indent:10px;} #proList p a{ text-decoration:none; color:#444; } #shopCarList{ width:500px; margin-left:10px; padding:10px; border:1px solid #ccc;} #shopCarList .proInfo{ line-height:20px; } #shopCarList .proInfo span{ display:inline-block;} #shopCarList .proInfo .amount{ width:50px; } #shopCarList .proInfo .title{ width:300px;} #shopCarList .proInfo .price{ width:100px;} #total{ text-align:right; border-top:1px dotted #ccc; padding:3px 0; margin-top:5px;} </style> <script> window.onload = function(){ var proList = document.getElementById('proList'); var aLi = proList.getElementsByTagName('li'); var shopCarList = document.getElementById('shopCarList'); var totalNow = 0; var json = {}; //为产品是否已经加入购物车提供标识 for(var i=0;i<aLi.length;i++){ aLi[i].ondragstart = function(ev){ var aP = this.getElementsByTagName('p'); ev = ev || window.event; ev.dataTransfer.setData('title',aP[0].innerHTML); ev.dataTransfer.setData('price',parseInt(aP[1].innerHTML.substring(1))); } } shopCarList.ondragover = function(ev){ ev = ev || window.event; ev.preventDefault(); } shopCarList.ondrop = function(ev){ ev = ev || window.event; ev.preventDefault(); var pTitle = ev.dataTransfer.getData('title'); var pPrice = ev.dataTransfer.getData('price'); var total = document.getElementById('total'); if(!json[pTitle]){ //购物车不存在该产品时,新建该产品信息 var oDiv = document.createElement('div'); oDiv.className = 'proInfo'; var oAmount = document.createElement('span'); oAmount.className = 'amount'; oAmount.innerHTML = 1; var oTitle = document.createElement('span'); oTitle.className = 'title'; oTitle.innerHTML = pTitle; var oPrice = document.createElement('span'); oPrice.className = 'price'; oPrice.innerHTML = '¥' + pPrice; oDiv.appendChild(oAmount); oDiv.appendChild(oTitle); oDiv.appendChild(oPrice); shopCarList.appendChild(oDiv); json[pTitle] = 1; }else{ //若存在该产品,该产品在购物车内的数量累加 var aTitle = shopCarList.getElementsByClassName('title'); var aAmount = shopCarList.getElementsByClassName('amount'); /* alert(aTitle.length); alert(aAmount.length);*/ for(var i=0;i<aTitle.length;i++){ if(aTitle[i].innerHTML == pTitle){ aAmount[i].innerHTML = parseInt(aAmount[i].innerHTML) + 1; } } } //计算总价值 if(!total){ var total = document.createElement('div'); total.id = 'total'; } totalNow += parseInt(pPrice); total.innerHTML = '¥'+ totalNow; shopCarList.appendChild(total); } } </script> </head> <body> <ul id="proList"> <li draggable="true"> <a href="#"><img src="imgs/TB1DDLcLXXXXXXvXFXXXXXXXXXX-200-200.jpg" alt=""/></a> <p>荣耀4A</p> <p>¥599</p> </li> <li draggable="true"> <a href="#"><img src="imgs/TB2T2xNeXXXXXbRXpXXXXXXXXXX_!!1114511827.jpg" alt=""/></a> <p>华为畅享5S</p> <p>¥699</p> </li> <li draggable="true"> <a href="#"><img src="imgs/TB2t3WCfpXXXXcXXXXXXXXXXXXX_!!1114511827.jpg" alt=""/></a> <p>荣耀7</p> <p>¥799</p> </li> <li draggable="true"> <a href="#"><img src="imgs/TB2YE6HeVXXXXcRXXXXXXXXXXXX_!!1114511827.jpg" alt=""/></a> <p>荣耀4C</p> <p>¥899</p> </li> </ul> <div id="shopCarList"></div> </body> </html>
HTML5自学笔记[ 10 ]简单的购物车拖拽的更多相关文章
- JAVA自学笔记10
JAVA自学笔记10 1.形式参数与返回值 1)类名作为形式参数(基本类型.引用类型) 作形参必须是类的对象 2)抽象类名作形参 需要该抽象类的子类对象,通过多态实现 3)接口名为形参 需要的是该接口 ...
- HTML5 CSS3 经典案例:无插件拖拽上传图片 (支持预览与批量) (二)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/31513065 上一篇已经实现了这个项目的整体的HTML和CSS: HTML5 C ...
- HTML5自学笔记[ 9 ]HTML5实现元素的拖放
要想在html5中实现元素的拖放,被拖放元素就必须设置属性draggable="true";被拖放元素被放置的地方是另外一个元素,该元素是目标元素:这两个元素在拖放过程中都会触发不 ...
- Html5 自学笔记
1 html的全称 Hyper Text Markup Language 2 HTML的意义 使用标记标签( Markup Tag)来描述网页 3 HTML标签一定成对吗 是 4 <html ...
- Android学习系列(10)--App列表之拖拽ListView(上)
研究了很久的拖拽ListView的实现,受益良多,特此与尔共飨. 鉴于这部分内容网上的资料少而简陋,而具体的实现过程或许对大家才有帮助,为了详尽而不失真,我们一步一步分析,分成两篇文章. ...
- 【javascript】谈谈HTML5: Web-Worker、canvas、indexedDB、拖拽事件
前言:作为一名Web开发者,可能你并没有对这个“H5”这个字眼投入太多的关注,但实际上它早已不知不觉进入到你的开发中,并且总有一天会让你不得不正视它,了解它并运用它 打个比方:<海贼王> ...
- HTML5深入学习之鼠标跟随,拖拽事件
知识点(鼠标跟随): mousedown: 当用户用鼠标点击在某一元素上就会触发该事件 mouseover: 当鼠标指针在某一元素上移动就会触发改事件 下面这个例子的效果就是鼠标点击元素后,元素跟着 ...
- HTML5学习笔记一 简单学习HTML5
什么是HTML? HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言: HyperText Markup Language HTML 不是一种编程语言,而是一种标记语言 标记语言是一 ...
- HTML5自学笔记[ 21 ]canvas绘图实例之马赛克
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
随机推荐
- 高通安卓调试LCD几方面总结
来公司上班现在已经整整一个月了,蔽人不才,能力有限,学习进度缓慢,不过也是有一点点的收获与心得,在这里写出来与大家分享,养成良好的记录习惯也免得后忘记. 不啰嗦了,开入正题.来公司一个月左右的时间,主 ...
- 【leetcode❤python】191. Number of 1 Bits
#-*- coding: UTF-8 -*- class Solution(object): def hammingWeight(self, n): if n<=0:retu ...
- 卡尔曼滤波—Simple Kalman Filter for 2D tracking with OpenCV
之前有关卡尔曼滤波的例子都比较简单,只能用于简单的理解卡尔曼滤波的基本步骤.现在让我们来看看卡尔曼滤波在实际中到底能做些什么吧.这里有一个使用卡尔曼滤波在窗口内跟踪鼠标移动的例子,原作者主页:http ...
- EntityFramework 开始小试
1 Install-Package EntityFramework 2 创建实体类 public class Blog { public int BlogId { get; set; } public ...
- FJNU 1157 Fat Brother’s ruozhi magic(胖哥的弱智术)
FJNU 1157 Fat Brother’s ruozhi magic(胖哥的弱智术) Time Limit: 1000MS Memory Limit: 257792K [Description ...
- 最近用到这个强大的工具 PhysicsEditor (转)
今天收到PhysicsEditor作者发过来的license key,所以顺便把PhysicsEditor也尝试了一下.主要是尝试将PhysicsEditor与cocos2dx,box2d结合开发的一 ...
- 个人博客作业WEEK 1
一.项目时间规划与实际用时 PSP2.1 Personal Software Process Stages 预计时间/h 实际时间/h Planning 计划 · Estimate · 估计这个任 ...
- HTTP refere
什么是 http refere ? 简言之,放在web浏览器的header上的 当我通过我的主页访问我朋友的网站时,就可以获得refere , 可以获取网页访问流量,也可以防盗链 一般 referer ...
- c#获取url请求的返回值(转)
有两种方式获取. 方法一: /// <summary> /// 获取url的返回值 /// </summary> /// <param name="url&qu ...
- poj2002Squares(点集组成正方形数)
链接 可以枚举两个点,因为是正方形两外两点可以由已知求出,据说可以根据三角形全等求出下列式子,数学渣不会证... 已知: (x1,y1) (x2,y2) 则: x3=x1+(y1-y2) y ...