JS實(shí)現(xiàn)的簡(jiǎn)單拖拽購(gòu)物車(chē)功能示例【附源碼下載】
本文實(shí)例講述了JS實(shí)現(xiàn)的簡(jiǎn)單拖拽購(gòu)物車(chē)功能。分享給大家供大家參考,具體如下:
<html>
<head>
<meta charset="utf-8" />
<title>使用拖放API將商品拖入購(gòu)物車(chē)</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);
}
//自定義頁(yè)面加載時(shí)調(diào)用的函數(shù)
function pageload() {
//獲取全部的圖書(shū)商品
var Drag = document.getElementsByTagName("img");
//遍歷每一個(gè)圖書(shū)商品
for (var intI = 0; intI < Drag.length; intI++) {
//為每一個(gè)商品添加被拖放元素的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");
//添加目標(biāo)元素的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);
}
//添加頁(yè)面的dragover事件
document.ondragover = function(e) {
//阻止默認(rèn)方法,取消拒絕被拖放
e.preventDefault();
}
//添加頁(yè)面drop事件
document.ondrop = function(e) {
//阻止默認(rèn)方法,取消拒絕被拖放
e.preventDefault();
}
//自定義向購(gòu)物車(chē)中添加記錄的函數(shù)
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("請(qǐng)輸入要購(gòu)買(mǎi)的數(shù)量",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>書(shū)名</span>
<span>定價(jià)</span>
<span>數(shù)量</span>
<span>總價(jià)</span>
</li>
</ul>
</body>
</html>
運(yùn)行效果:


附:完整實(shí)例代碼點(diǎn)擊此處本站下載。
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動(dòng)畫(huà)特效與技巧匯總》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- JS實(shí)現(xiàn)基于拖拽改變物體大小的方法
- AngularJS實(shí)現(xiàn)的簡(jiǎn)單拖拽功能示例
- 使用javaScript實(shí)現(xiàn)鼠標(biāo)拖拽事件
- js實(shí)現(xiàn)QQ面板拖拽效果(慕課網(wǎng)DOM事件探秘)(全)
- js實(shí)現(xiàn)鼠標(biāo)拖拽多選功能示例
- js實(shí)現(xiàn)拖拽上傳圖片功能
- 完美實(shí)現(xiàn)js拖拽效果 return false用法詳解
- 簡(jiǎn)單實(shí)現(xiàn)js拖拽效果
- 基于AngularJS的拖拽文件上傳的實(shí)例代碼
- Java實(shí)現(xiàn)拖拽文件上傳dropzone.js的簡(jiǎn)單使用示例代碼
- JS實(shí)現(xiàn)簡(jiǎn)單拖拽效果
- JS實(shí)現(xiàn)簡(jiǎn)易的圖片拖拽排序?qū)嵗a
- js實(shí)現(xiàn)控制文件拖拽并獲取拖拽內(nèi)容功能
相關(guān)文章
jQuery ajax(復(fù)習(xí))—Baidu ajax request分離版
你沒(méi)有看錯(cuò)標(biāo)題,本文的確是在講Baidu ajax,不過(guò)是很久很久以前的版本了,我們先分析一段簡(jiǎn)單的ajax代碼,來(lái)自早期的百度七巧板項(xiàng)目通過(guò)這個(gè)來(lái)先復(fù)習(xí)一遍ajax的知識(shí)2013-01-01
Javascript實(shí)現(xiàn)通過(guò)選擇周數(shù)顯示開(kāi)始日和結(jié)束日的實(shí)現(xiàn)代碼
這篇文章主要介紹了Javascript實(shí)現(xiàn)通過(guò)選擇周數(shù)顯示開(kāi)始日和結(jié)束日的實(shí)例代碼的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-05-05
Chrome插件開(kāi)發(fā)系列一:彈窗終結(jié)者開(kāi)發(fā)實(shí)戰(zhàn)
從這一節(jié)開(kāi)始,我們將從零開(kāi)始打造我們的chrome插件工具庫(kù),第一節(jié)我們將講一下插件開(kāi)發(fā)的基礎(chǔ)知識(shí)并構(gòu)建一個(gè)簡(jiǎn)單但卻很實(shí)用的插件,在構(gòu)建之前,我們先簡(jiǎn)單的了解一下插件以及插件開(kāi)發(fā)的基礎(chǔ)知識(shí)2020-10-10
每個(gè) JavaScript 工程師都應(yīng)懂的33個(gè)概念
這個(gè)項(xiàng)目是為了幫助開(kāi)發(fā)者掌握 JavaScript 概念而創(chuàng)立的。它不是必備,但在未來(lái)學(xué)習(xí)( JavaScript )中,可以作為一篇指南,需要的朋友可以參考下2018-10-10
BootStrap實(shí)現(xiàn)樹(shù)形目錄組件代碼詳解
這篇文章主要介紹了BootStrap實(shí)現(xiàn)樹(shù)形目錄組件代碼詳解的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
TypeScript判斷兩個(gè)數(shù)組的內(nèi)容是否相等的實(shí)現(xiàn)
本文主要介紹了TypeScript?判斷兩個(gè)數(shù)組的內(nèi)容是否相等,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11

