JavaScript实现的购物车效果-效果好友列表

JavaScript实现的购物车效果,当然,可以在许多地方使用这种效果,朋友的。例如,在选择,人力资源模块。工资的计算,人才选拔等。。下面来看一下班似有些车效果图:

code:

goodsCar.js:这个js写成了一个单独的文件。主要是控制上面的列表显示的。

window.onload=function(){
	initStore();
};
var goods=["火腿","美女","御姐","火星一日游","跑车"];
//==================为什么要定义一个暂时存储区要想清楚哦=============
var temps=[];//暂时存储
//初始化仓库select 加入内容
function initStore(){
	var select_store=document.getElementById("select_store");
	for(var x=0;x<goods.length;x++)
		{
		//创建option对象
		var optionNode=document.createElement("option");
		optionNode.innerHTML=goods[x];
		select_store.appendChild(optionNode);
		}
}
//------------------------------------
function selectGoods(){
	//获取store的select列表对象
	var out_store=document.getElementById("select_store");
	//获取我的商品的select列表对象
	var in_store=document.getElementById("select_my");
	moveGoods(in_store,out_store);
}
function deleteGoods(){
	//1.记录下要移动的产品
	var in_store=document.getElementById("select_store");
	var out_store=document.getElementById("select_my");
	moveGoods(in_store,out_store);
}
/*
 * 移动商品:
 1.inSotre:将商品移入仓库
 2.outStore:将商品移出仓库
 */
//移动
function moveGoods(inStore,outStore){
	//===============清空数组缓存==================
	temps=[];
	//循环获取store中的全部列表项
	for(var x=0;x<outStore.options.length;x++)
		{
			var option=outStore.options[x];
			//将被选中的列表项加入到暂时数组中存储
			if(option.selected){
				temps.push(option);//暂时数组中加入数据。为了避免反复,数组缓存要清空
			}
		}
	//2.在store列表中删除已经选中的物品
	//3.在购物车中加入已经选择的产品
	for(var x=0;x<temps.length;x++)
		{
		//每个节点都仅仅有一个父节点
			//先删除后加入
			outStore.removeChild(temps[x]);
			//加入
			inStore.appendChild(temps[x]);
		}
}

以下是主文件;

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
table{
border:10px;
}
select{
width:200px;
height:400px;
}
#order_area{
display:none;
}
</style>
<script type="text/javascript" src="goodsCar.js"></script>
<script type="text/javascript">
var selectedGoods=[];//缓存区域
//依据购物车中的产品。生成订单
function createOrder(){
	//显示订单区域
	var orderAreaDiv=document.getElementById("order_area");
	/*div对象以下有一个成员对象style。通过这个style对象能够控制div的样式
	display:表示这个对象或者叫div这个元素在文档中是否渲染
	可用的值:
	block: Object is rendered as a block element.
	none :Object is not rendered.
	.......
	在这个实例中。就用以上两个值就ok了。上面内容来自文档
	*/
	//用节点对象的属性操作样式
	orderAreaDiv.style.display="block";
	var select_my=document.getElementById("select_my");
	for(var x=0;x<select_my.options.length;x++){
	//
	var optNode=select_my.options[x];
	selectedGoods.push(optNode.innerHTML);
	}
	//遍历产品,生成订单
	for(var x=0;x<selectedGoods.length;x++){
	///*动态生成数据的模板
	//<div><!--name属性便于查找-->
	//<input type="checkbox" name="myorder"><span>大帅哥 20元</span>
	//</div>
	//*/
	var divNode =document.createElement("div");
	orderAreaDiv.appendChild(divNode);
	var inputMyOrder=document.createElement("input");
	inputMyOrder.setAttribute("type","checkbox");
	inputMyOrder.setAttribute("name","myorder");
	divNode.appendChild(inputMyOrder);
	var spanNode=document.createElement("span");
	//随机生成一个50到100的随机数
	var price=Math.floor(Math.random()*50+50);
	inputMyOrder.value=price;
	spanNode.innerHTML=selectedGoods[x]+" "+price;
	divNode.appendChild(spanNode);
	//inputMyOrder.appendChild(spanNode);错误,由于span和input是同级元素

	//生组装好的divNode加入到 orderlist中
	var order_list = document.getElementById("order_list");
	order_list.appendChild(divNode);
	}
}
/*
 * 再生成的订单中仍然能够选择哪些订单是准备付款的,然后进行付款
 三种选择方式:全选:1。不选:0。反选:2;checkbox自己的功能能够多选
 */
 function mySelect(arg){
	//getElementsByName:依据 NAME 标签属性的值获取对象的集合。
	var orders = document.getElementsByName("myorder");
	//在写代码的过程中错误的运用了以下这一句话
	//getElementsByTagName:获取基于指定元素名称的对象集合。
	//var orders=document.getElementsByTagName("myorder");
	for(var x=0;x<orders.length;x++){
		var order=orders[x];
		if(arg=="1"){
			order.checked=true;
		}
		else if(arg=="0"){
			order.checked=false;
		}
		else if(arg=="2"){
			order.checked=!order.checked;
		}
	}
}
//结账买单。这里面用对话款弹出的全部商品的金额做演示
function payMoney(){
	var orders = document.getElementsByName("myorder");
	//总价
	var sum=0;
	for(var x=0;x<orders.length;x++){
		var order = orders[x];
		if(order.checked){
			//确定要买的。
			sum=sum+Number(order.value);
		}
	}

	alert("您看看您是不是要支付"+sum+"元");
}
</script>
</head>
<body>
	<table>
		<tr>
		<td>
		<!-- select 对象的multiple的属性的含义:设置或获取表明列表中是否可选中多个项目的 Boolean 值 -->
			<select id="select_store" multiple="multiple">
			<optgroup label="产品列表"></optgroup>
			</select>
		</td>
		<td>
			<input type="button" value=">>" onclick="selectGoods();"/><br>
			<input type="button" value="<<" onclick="deleteGoods();"/>
		</td>
		<td>
			<select id="select_my" multiple="multiple">
			<optgroup label="我的购物车"></optgroup>
			</select>
		</td>
		<td><input type="button" value="生成订单" onclick="createOrder();"/></td>
		</tr>
	</table>
	<hr/>
	<div id="order_area">
		<h3>请选择您要购买的产品:</h3>
		<div id="order_list">
			<!--  <div>
			<input type="checkbox"><span>大帅哥 20元</span>
			</div>-->
		</div>
		<input type="button" value="全选" onclick="mySelect(‘1‘);"/>
		<input type="button" value="不选" onclick="mySelect(‘0‘);"/>
		<input type="button" value="反选" onclick="mySelect(‘2‘);"/><br>
		<input type="button" value="付款啦" onclick="payMoney();"/>
	</div>
</body>
</html>

版权声明:本文博客原创文章。博客,未经同意,不得转载。

时间: 2024-08-29 19:54:21

JavaScript实现的购物车效果-效果好友列表的相关文章

Js效果:图片轮播;选项卡;侧面菜单下拉效果;进度条效果;滑动效果;好友列表选中效果;点击选中显示效果

选项卡效果表: <body><div id="aaa"> <div class="bbb" style="width:50px; height:30px; background-color:#3F0" onclick="Show('d1')">娱乐</div> <div class="bbb" style="width:50px; height

JavaScript实现的购物车效果-好友列表效果

JavaScript实现的购物车效果,当然这个效果可以运用在好多地方,比如好友的选择,人力资源模块,计算薪资,人员的选择等等.下面看类似某种购物车的效果图: code: goodsCar.js:这个js写成了一个单独的文件.主要是控制上面的列表显示的. window.onload=function(){ initStore(); }; var goods=["火腿","美女","御姐","火星一日游","跑车&quo

鼠标事件和表单事件+好友列表选中效果+侧面菜单下拉效果

通用:onclick 鼠标单击ondblclick 鼠标双击onmouseover 鼠标放上onmouseout 鼠标离开onmousemove 鼠标移动 表单:onchang 表单的值改变onblur 失去焦点onfocus 获得焦点onselect 选中 2.好友列表选中效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/

基于Qt的类似QQ好友列表抽屉效果的实现

前段时间在忙毕业设计,所以一直没有更新博客.今天答辩完以后,将对我的毕业设计进行模块展示,供Qt初学者进行参考. 毕业设计题目:Linux系统下基于Qt的局域网即时通信系统设计与实现 其中我有一个类似于QQ的好友列表,然后对好友可以进行分组管理,毕设中具体效果图如下: 网上查寻到的设计思路: 1.采用QToolBox的方式,虽然看起来有点样子,但是并不是我们所熟悉的好友列表,比如:http://blog.csdn.net/qianguozheng/article/details/6719074

day01好友列表折叠效果实现

1.实现效果            2.关键点:每个分组的展开和折叠,主要是对每组的行数进行设置,展开为count,折叠为0 3.思想思路:先实现数据模型逻辑-->展示基本数据-->自定义cell-->自定义cellHeaderView视图-->在cellHeaderView中设置协议,controller中遵守协议,实现cellHeaderView点击事件的传递(即好友列表折叠点击事件的实现) 4.主要代码 1)friend ,group数据模型的定义 1 // 2 // Fri

javascript仿天猫加入购物车动画效果

  注意:首先需要声明的是:代码原思路不是我写的,是在网上找的这种效果,自己使用代码封装了下而已:代码中都有注释,我们最主要的是理解抛物线的思路及在工作中完成这样的任务,最近需要做类似于天猫加入购物车动画效果,所以就在网上搜索了下,就看到类似的效果,就把代码截下来自己封装了下~~ 如果想要了解抛物线的细节,我建议大家先 看下 张鑫旭 讲解的抛物线的文章,再来看如下JS代码,可能理解更深点~~ http://www.zhangxinxu.com/wordpress/2013/12/javascri

仿饿了么购物车下单效果

仿饿了么购物车下单效果 前一段由于新项目需要,开发一个类似饿了么购物车下单效果,电商类.外卖类.点餐类项目都可以用的上,废话不多说请看效果. 效果图如下: 主要的功能: 就是左侧展示分类,右侧展示分类下商品的,点击右侧分类下的商品,如果商品是套餐类型的话,点击可以看套餐详情,下单选择完商品后,可以在购物车里面添加或减少商品数量. 主要功能实现: 1:分类及商品及购物车里面商品数量的联动效果 2:底部购物车商品列表 3:选择左侧分类效果 4:添加商品是有0到1,减少商品有1到0动画效果 5:下单动

【转】Android 实现蘑菇街购物车动画效果

原文出处:http://blog.csdn.net/wangjinyu501/article/details/38400479 1.思路 目前想到两种方式实现这种效果,一是使用Tween动画,直截了当的进行一个移动,蘑菇街就是使用这样的方法.二是使用WindowManager创建一个View,然后对这个View进行移动. 2.实现 本文先用方式一方法实现,之后会用方式二方法实现. 方式一: Activity代码: 1 package com.kince.mogujie; 2 3 import a

JavaScript实现多栏目切换效果

效果: 代码: <!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>JavaScript实现多栏目切换效果</title> <style> .news_wrap { width: 380px; height: 266px; fl