购物车 初始版

goodsList部分

购物车菜单html样式

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="./css/reset.css">
<link rel="stylesheet" href="./css/goodsList.css">
</head>
<body>  
<div class="wrap">  
	<div class="header">    
		<h1>商品列表</h1>    
		<!-- 右上角链接购物车 -->    
		<a href="./goodsCart.html">我的购物车</a>  
	</div>  
	<!-- 导航看出路径指引 -->  
	<div class="nav">    首页 》 鞋子 》 男鞋 》 帆布鞋  
	</div>  
	<div class="main">    
		<div class="content">     
		<!--  <div class="goods">        
			<img src="./img/goods1.png" alt="">        
			<p>¥188</p>        
			<h3>青春靓丽洋气时尚大方帅气的小白鞋,情侣同款</h3>        
			<div>加入购物车</div>      
		</div>      
		<div class="goods">        
			<img src="./img/goods1.png" alt="">        
			<p>¥188</p>        
			<h3>青春靓丽洋气时尚大方帅气的小白鞋,情侣同款</h3>        
			<div>加入购物车</div>      
		</div>      
		<div class="goods">        
			<img src="./img/goods1.png" alt="">        
			<p>¥188</p>        
			<h3>青春靓丽洋气时尚大方帅气的小白鞋,情侣同款</h3>        
			<div>加入购物车</div>      
		</div>      
		<div class="goods">        
			<img src="./img/goods1.png" alt="">        
			<p>¥188</p>        
			<h3>青春靓丽洋气时尚大方帅气的小白鞋,情侣同款</h3>        
			<div>加入购物车</div>      
		</div>      
		<div class="goods">        
			<img src="./img/goods1.png" alt="">        
			<p>¥188</p>        
			<h3>青春靓丽洋气时尚大方帅气的小白鞋,情侣同款</h3>        
			<div>加入购物车</div>      
		</div>      
		<div class="goods">        
			<img src="./img/goods1.png" alt="">        
			<p>¥188</p>        
			<h3>青春靓丽洋气时尚大方帅气的小白鞋,情侣同款</h3>        
			<div>加入购物车</div>      
		</div>      
		<div class="goods">        
			<img src="./img/goods1.png" alt="">        
			<p>¥188</p>        
			<h3>青春靓丽洋气时尚大方帅气的小白鞋,情侣同款</h3>        
			<div>加入购物车</div>      
		</div>      
		<div class="goods">        
			<img src="./img/goods1.png" alt="">        
			<p>¥188</p>        
			<h3>青春靓丽洋气时尚大方帅气的小白鞋,情侣同款</h3>        
			<div>加入购物车</div>      
		</div> -->    
		</div>  
	</div>
</div>
<script src="./js/jquery-1.8.3.js"></script>
<script src="./js/goodsList.js"></script></body>
</html>

购物车菜单css样式

.wrap{  
	width: 1000px;  
	margin: 0 auto;
}
/* 头部 */
.header{  
	background-color: #eee;  
	position: relative;
}
.header h1{  
	text-align: center;  
	line-height: 80px;  
	font-size: 30px;
}
/* 定位右上角购物车网站链接 */
.header a{  
	position: absolute;  
	right: 10px;  
	top: 10px;  
	color: red;  
	padding: 4px 8px;  
	border: 1px solid red;
}
.nav{  
	padding: 15px 0;
}
/* 每一个元素在页面盒模型都能看出宽高范围   不要出现高度为0的情况*/
.main{  
	overflow: hidden;
}
/* ⭐⭐⭐⭐⭐  解决多出的照片20元素  最后需要ajax渲染不建议行内元素设置 */
.content{  
	width: 1050px;  
	overflow: hidden;
}
/* 高度不要给,作为父元素有子元素撑开情况下不要给高 可自由扩展 */
.goods{  
	float: left;  
	width: 235px;  
	margin-right: 20px;  
	margin-bottom: 30px;  
	/* ⭐⭐ */  
	border: 1px solid #fff;
}
.goods:hover{  
	/* ⭐⭐ */  
	border-color: red;
}
.goods img{  
	width: 235px;
}
/* 价格  尽量字体不要纯色 刺眼 跳 */
.goods p{  
	color: #f40;  
	font-size: 18px;  
	padding: 6px 0;
}
.goods div{  
	border: 1px solid #f40;  
	color: #f40;  
	font-size: 14px;  
	padding-left: 40px;  
	line-height: 30px;  
	background: url(../img/cart.png) 5px 4px no-repeat;  
	float: right;  
	padding-right: 6px;  
	cursor: pointer;
}

购物车菜单js部分

//两个东西 第一个东西来到这个页面加载当前商品数据把它渲染出来第二个东西是每个商品加入购物车的时候把数据编号code存到本地存储
//ready放法
$(function (){
	  // 获取商品列表数据  需要json接口  
	  $.ajax({    
  		url: './data/goods.json',    
  		type: 'get',    dataType: 'json',    
  		//请求拿到数据了才获取到编号    
  		success: function (json){      
  			// console.log(json)      
  			//接下来展示渲染数据  根据json给的数据结构      
  			var goodsStr = '' //字符串为空累加到上面      
  			// $.each遍历数组  第一个你要遍历的数组  第二个函数(第二个每一个对象每一个数据商品编号)      。
  			$.each(json,function (index,item){        
  				goodsStr += `<div class="goods">          
  					<img src="${item.imgurl}" alt="">          
  					<p>${item.price}</p>          
  					<h3>${item.title}</h3>          
  					<div code="${item.code}">加入购物车</div>        
  				</div>`      
  			})      
  			// 添加到content里面去      
  			$('.content').html(goodsStr)    
  		}  
  	})
	  // 点击加入购物车  委托(绑定点击事件  动态元素)第一个事件类型 第二个触发事件的元素  第三个事件处理函数  
	  //点击按钮之后需要储存当前用户点击哪个商品加入购物车  
	  $('.content').on('click','.goods div',function (){    
	  	// 获取当前点击商品的编号    
	  	//商品的code编号存下来  获取属性    
	  	var code = $(this).attr('code')        
	  	// localStorage  key = value  存值              
	  			//  goods = [{code:'abc1',num:1},{code:'abc2',num:2}]    
	  	// 判断本地存储是否有数据    
	  	if (localStorage.getItem('goods')) {      
	  		//说明之前有存储过商品   取出来数组  json解析成对象      
	  		var goodsArr = JSON.parse( localStorage.getItem('goods') )    
	  	} else {      
	  		var goodsArr = []    
	  	}

    //是否有某个商品给个false    
    var hasGoods = false
    if (goodsArr.length > 0) {      
    	// 判断当前选中商品是否在购物车中      
    	$.each(goodsArr,function (index,item){        
    		console.log(index)        
    		console.log(item)        
    		if (item.code === code) {// 商品存在购物车中,数量+1          
    			item.num++//代表数量的key++          
    			//执行到这说明有某个商品          
    			hasGoods = true          
    			//执行到return false 说明遍历结束了          
    			return false        
    		}      
    	})    
    }
    // 如果购物车没有当前选中的商品,添加一条数据    
    if (!hasGoods) {      
    	// var objStr = JSON.stringify({code:code,num:1})      
    	//应该变成对象,不应该是字符串  编号  数量      
    	goodsArr.push({code:code,num:1})    
    }
    // 更新本地存储的数据  重新存进key里去  转成json字符串    
    localStorage.setItem('goods',JSON.stringify(goodsArr))
    alert('添加购物车成功')
  })
})

在这里插入图片描述

goodsCart部分

购物车主要页面html部分

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="./css/reset.css">
<link rel="stylesheet" href="./css/goodsCart.css">
</head>
<body>
<div class="wrap">  
	<div class="header">    
		<h1>我的购物车</h1>  
	</div>  
	<div class="main">    
		<div class="title">      
			<span class="a1">商品</span>      
			<span class="a2">单价</span>      
			<span class="a3">数量</span>      
			<span class="a4">操作</span>    
		</div>    
		<ul class="list">      
			<!-- <li>        
				<img src="./img/goods1.png" alt="">        
				<h3>青春靓丽洋气时尚大方帅气的小白鞋,情侣同款</h3>        
				<p>¥188</p>        
				<span>2</span>        
				<em>删除</em>      
			</li>      
			<li>        
				<img src="./img/goods1.png" alt="">        
				<h3>青春靓丽洋气时尚大方帅气的小白鞋,情侣同款</h3>        
				<p>¥188</p>        
				<span>2</span>        
				<em>删除</em>      
			</li>      
			<li>        
				<img src="./img/goods1.png" alt="">        
				<h3>青春靓丽洋气时尚大方帅气的小白鞋,情侣同款</h3>        
				<p>¥188</p>        
				<span>2</span>        
				<em>删除</em>      
			</li> -->    
			</ul>  
		</div>
	</div>
	<script src="./js/jquery-1.8.3.js"></script>
	<script src="./js/goodsCart.js"></script>
	</body>
	</html>

购物车主要页面css部分

.wrap{  
	width: 1000px;  
	margin: 0 auto;
}
.header{  
	background-color: #eee;
}
.header h1{  
	line-height: 80px;  
	text-align: center;  
	font-size: 30px;
}
.title{  
	line-height: 40px;  
	background-color: #ccc;  
	overflow: hidden;  
	margin-top: 30px;
}
.title span{  
	font-size: 14px;  
	color: #333;
}
.a1{  
	margin-left: 100px;
}
.a2{  
	margin-left: 450px;
}
.a3{  
	margin-left: 100px;
}
.a4{  
	margin-left: 100px;
}
.list li{  
	margin: 10px 0;  
	overflow: hidden;
}
.list li img{  
	width: 80px;  
	height: 80px;  
	float: left;
}
.list li h3{  
	float: left;  
	margin-left: 10px;  
	width: 340px;  
	padding: 10px 0;
}
.list li p{  
	float: left;  
	margin-left: 120px;  
	width: 100px;  
	padding: 10px 0;  
	text-align: center;
}
.list li span{  
	float: left;  
	margin-left: 30px;  
	width: 100px;  
	padding: 10px 0;  
	text-align: center;
}
.list li em{  
	float: left;  
	margin-left: 30px;  
	width: 100px;  
	padding: 10px 0;  
	text-align: center;
}

购物车主要页面js部分

$(function (){
  	// 判断本地存储是否有购物车数据  goods key  
  	if (localStorage.getItem('goods')) {// 有数据    
  		// 获取本地存储中购物车的数据  把数据拿出来⭐⭐⭐⭐⭐⭐    
  		var goodsArr = JSON.parse( localStorage.getItem('goods') )  //转成对象
 	 	  // 获取数据    
    		$.ajax({      
    			url: './data/goods.json',      
    			type: 'get',      
    			dataType: 'json',      
    			success: function (json){        
    				//在循环外面声明一个变量        
    				var domStr = ''        
    				//遍历上面获取到的数组  获得购物车每个数据与下面json对象比较一下        
    				$.each(goodsArr,function (index,item){          
    					//遍历json所有数据  每个对比一下          
    					$.each(json,function (ind,obj){            
    						//说明这条数据是我想要的            
    						if ( item.code === obj.code ) {              
    							// 把数据遍历渲染到里面来  拼接              
    							domStr += `              
    							<li>                
    							<img src="${obj.imgurl}" alt="">                
    							<h3>${obj.title}</h3>                
    							<p>${obj.price}</p>                
    							<span>${item.num}</span>                
    							<em code="${obj.code}">删除</em>              
    							</li>              
    							`            
    						}          
    					})        
    				})        
    				$('.list').html(domStr)      
    			}    
    		})
   		 // 商品移出购物车  每一个事件都是动态渲染的 使用事件委托    
   		 $('.list').on('click','li em',function (){      
   		 	// 删除该商品对应的li  节点      
   		 	$(this).parent().remove()
      			// 更新本地存储中的数据  数据      
      			var code = $(this).attr('code') // 要删除商品的编号  给删除按钮创建个code      
      			// 删除数组元素:pop()  unshift()  splice(index,1)  从数组中删除某个对象      
      			//知道索引就能删掉      
      			$.each(goodsArr,function (index,item){        
      				if (item.code === code) {          
      					goodsArr.splice(index,1)          
      					return false        
      				}      
      			})
      			// 判断购物车是否还有数据      
      			if (goodsArr.length > 0) {        
      				// 更新本地数据        
      				localStorage.setItem('goods',JSON.stringify(goodsArr))      
      			} else {        
      				// 清除本地数据        
      				localStorage.removeItem('goods')        
      				var nodata = '<li style="line-height: 70px; text-align: center;">购物车暂无数据!</li>'        
      				$('.list').html(nodata)      
      			}
      			alert('商品移出购物车成功!')
 		   })
  } else {// 没数据    
  	var nodata = '<li style="line-height: 70px; text-align: center;">购物车暂无数据!</li>'    
  	//插入到list中    
  	$('.list').html(nodata)  
  }
})

在这里插入图片描述

通用css

@charset "utf-8";
html,
body,
ul,
li,
ol,
dl,
dd,
dt,
p,
h1,
h2,
h3,
h4,
h5,
h6,
form,
fieldset,
legend,
img,
input,
figure,
figcaption
{    
	margin: 0;    
	padding: 0;    
	box-sizing: 
	border-box;
}
header,footer,section,article,aside,nav,main,hgroup{    
	display:block;
}
*{    
	box-sizing: border-box;
}
body {    
	font-size: 16px;    
	font-family: "微软雅黑";
}
ul,ol,li {    
	list-style: none;
}
b,
strong {    
	font-weight: normal;
}
em,i {    
	font-style: normal;
}
a,u {    
	text-decoration: none;
}
h1,h2,h3,h4,h5,h6 {    
	font-size: 16px;    
	font-weight: normal;
}
input {    
	outline: none;
}
img {    
	display: block;    border: 0;
}
fieldset {    
	border: 0;
}
textarea {    
	resize: none;
}
/* 封装好类名 */
.border_none {    
	border: none !important;
}
.bg_none {    
	background: none !important;
}
/* 单行文本溢出省略号显示 */
.text_ellipsis {    
	white-space: nowrap;    
	overflow: hidden;    
	text-overflow: ellipsis;
}

通用jquery-1.8.3.js

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值