购物车html,css,js代码能计算价格
时间: 2023-07-28 09:52:15 浏览: 205
当然可以,以下是一个简单的购物车页面的 HTML、CSS 和 JavaScript 代码,可以实现添加商品、修改商品数量和计算总价的功能。
HTML 代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>购物车页面</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<header>
<h1>购物车</h1>
</header>
<main>
<div class="product-list">
<h2>商品列表</h2>
<ul>
<li>
<img src="product1.jpg">
<h3>商品1</h3>
<p>价格:$10</p>
<button class="add-to-cart" data-price="10">添加到购物车</button>
</li>
<li>
<img src="product2.jpg">
<h3>商品2</h3>
<p>价格:$20</p>
<button class="add-to-cart" data-price="20">添加到购物车</button>
</li>
<li>
<img src="product3.jpg">
<h3>商品3</h3>
<p>价格:$30</p>
<button class="add-to-cart" data-price="30">添加到购物车</button>
</li>
</ul>
</div>
<div class="cart">
<h2>购物车</h2>
<ul>
</ul>
<p class="total-price">总价:$0</p>
</div>
</main>
<script src="script.js"></script>
</body>
</html>
```
CSS 代码:
```css
body {
margin: 0;
padding: 0;
font-family: Arial, sans-serif;
}
header {
background-color: #333;
color: #fff;
padding: 20px;
text-align: center;
}
main {
display: flex;
flex-wrap: wrap;
padding: 20px;
}
.product-list {
flex: 1;
margin-right: 20px;
}
.product-list h2 {
margin-top: 0;
}
.product-list ul {
list-style: none;
margin: 0;
padding: 0;
}
.product-list li {
margin-bottom: 20px;
}
.product-list li img {
display: block;
max-width: 100%;
height: auto;
margin-bottom: 10px;
}
.product-list li h3 {
margin: 0;
font-size: 18px;
}
.product-list li p {
margin: 0;
color: #999;
}
.add-to-cart {
background-color: #f00;
color: #fff;
border: none;
padding: 10px;
border-radius: 5px;
cursor: pointer;
}
.cart {
flex: 1;
background-color: #eee;
padding: 20px;
border-radius: 5px;
}
.cart h2 {
margin-top: 0;
}
.cart ul {
list-style: none;
margin: 0;
padding: 0;
}
.cart li {
margin-bottom: 10px;
}
.cart li button {
background-color: #f00;
color: #fff;
border: none;
padding: 5px;
border-radius: 5px;
cursor: pointer;
}
.total-price {
font-size: 24px;
font-weight: bold;
margin: 0;
text-align: right;
}
```
JavaScript 代码:
```javascript
var cart = [];
var addToCartButtons = document.getElementsByClassName('add-to-cart');
for (var i = 0; i < addToCartButtons.length; i++) {
addToCartButtons[i].addEventListener('click', function() {
var price = parseFloat(this.getAttribute('data-price'));
var item = {
price: price,
quantity: 1
};
for (var j = 0; j < cart.length; j++) {
if (cart[j].price === price) {
cart[j].quantity++;
item = null;
break;
}
}
if (item) {
cart.push(item);
}
updateCart();
});
}
function updateCart() {
var cartList = document.querySelector('.cart ul');
var totalPrice = document.querySelector('.total-price');
cartList.innerHTML = '';
var total = 0;
for (var i = 0; i < cart.length; i++) {
var item = cart[i];
var li = document.createElement('li');
li.innerHTML = '$' + item.price.toFixed(2) + ' x ' + item.quantity + ' = $' + (item.price * item.quantity).toFixed(2);
var button = document.createElement('button');
button.innerHTML = '删除';
button.addEventListener('click', (function(item) {
return function() {
var index = cart.indexOf(item);
cart.splice(index, 1);
updateCart();
};
})(item));
li.appendChild(button);
cartList.appendChild(li);
total += item.price * item.quantity;
}
totalPrice.innerHTML = '总价:$' + total.toFixed(2);
}
```
该代码实现了以下功能:
- 点击“添加到购物车”按钮,将商品添加到购物车中,并更新购物车列表和总价;
- 如果购物车中已经存在该商品,则只增加该商品的数量,而不是添加新的条目;
- 点击购物车列表中的“删除”按钮,可以将相应商品从购物车中删除,并更新购物车列表和总价。
希望这个代码可以帮到您。
阅读全文