商城项目日结4

今天主要对商品列表页的商品进行数据渲染 并调整样式,另外对商品详情页面进行数据渲染。
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="">
    <link rel="stylesheet" href="../lib/bootstrap/dist/css/bootstrap.css">
    <link rel="stylesheet" href="../css/reset.css">
    <link rel="stylesheet" href="../css/common.min.css">
    <link rel="stylesheet" href="../css/index.css">
    <link rel="stylesheet" href="../css/footer.css">
    <link rel="stylesheet" href="../lib/jquery-zoom/css/hizoom.min.css">
    <link rel="stylesheet" href="../css/detail.css">
    <style>
                  
    </style>
</head>
<body>
    <!-- 头部 -->
    <div class="layout-header-nav">
        <div class="container"> 
            <p class="header-benefit">
                商城优惠大酬宾,全场满59元包邮
            </p>
            <div class="header-cart">
                <a href="./cart.html" class="header-cart-link">
                    <div class="header-cart-button">
                        <div class="header-cart-button-img"></div>
                        <span class="header-cart-button-word">
                          购物车
                        </span>
                    </div>
                </a>
            </div>
            <div class="header-nav">
                <a href="./login.html" class="header-nav-item login">登录</a>
                <span class="header-nav-item">|</span>
                <a href="./register.html" class="header-nav-item">注册</a>
                <span class="header-nav-item">|</span>
                <a href="./cart.html" class="header-nav-item">我的订单</a>
                <span class="header-nav-item">|</span>
                <a href="#" class="header-nav-item">帮助中心</a>
                <span class="header-nav-item">|</span>
                <a href="#" class="header-nav-item">TP-LINK官网</a>
            </div>> 
        </div>
    </div>
   
    <div class="layout-header-search">
      <div class="container">
          <a href="#">
            <img src="" alt="" class="header-logo">
          </a>
          
            <div class="layout-banner-nav">
              <div class="banner-nav-list">
                  <div class="container2">
                      
                  </div>
              </div>
            </div>
          <form action="" class="header-search">
                <input type="text" class="header-search-input" autocomplete="off">
                <input type="button" class="header-search-submit" value="">
                
          </form>
      </div>
  
    </div>
  
    <div class="nav_box"> 
        <ul class="container">
  
        </ul>
    </div>

 <!-- 商品详情 -->
    <div class="container">
        <div class="goodsInfo">
            <div class="left">
                <div class="hizoom zoom">
                    <img src="../images/img01.jpg" >
                </div>
            </div>
            <div class="right">
                <p class="goodsName">商品详细介绍</p>
                <p class="price">100.00</p>
                <div class="btn">
                <button class="addCart">添加购物车</button>
                <button class="buy">直接购买</button>
                </div>
            </div>
        </div>
    </div>
    <!-- footer -->
    <div class="footer-promise">
        <div class="container">
            <img src="http://www.tp-linkshop.com.cn/Content/themes/base/images/Shared/promise.jpg" alt="" class="footer-promise-img">
        </div>
      </div>
      
      <div class="layout-footer-service">
        <div class="container">
            <ul class="footer-service">
                
            </ul>
        </div>
      </div>
    <script src="../lib/jquery/dist/jquery.min.js"></script>
    <script src="../lib/jquery-cookie/jquery.cookie.js"></script>
    <script src="../lib/jquery-zoom/js/hizoom.min.js"></script>
    <script src="../js/detail.js"></script>
    <script src="../js/footer.js"></script>
    <script>
        $(function(){
            $('.zoom').hiZoom({
                    width: 400,
                    position: 'right'
            });
        })
    </script>
</body>
</html>

js

// 1. 获取 localStorage 里面的数据
    const info = JSON.parse(localStorage.getItem('goodsInfo'))

    // 2. 判断数据是否存在
    if (!info) {
    // 能执行表示 !info 是一个 true
    // 表示 info 是一个 false
    // 表示数据不存在
    alert('页面不存在')
    // 跳转回列表页面
    window.location.href = './list.html'
    }

    // 3. 渲染页面
    bindHtml()
    function bindHtml() {
    $('.goodsInfo img').attr('src', info.list_url)
    $('.goodsInfo .goodsName').text(info.list_name)
    $('.goodsInfo .price').text('¥' + info.list_price)
    }

    // console.log(info)

    // 4. 点击添加购物车
    // 4-1. 添加点击事件
    $('.addCart').click(() => {
    // console.log('我要添加购物车了')

    // 4-2. 判断是否登录
    if ($.cookie('name')) {
        console.log('用户登录')
          
      
    // 4-3. 加入到购物车数组里面
    //    先拿到 localStorage 里面的那个数组信息
    //    如果原先没有数据, 那么我就用一个空数组来代替
    //    如果有数据, 就用我们的数据
    const cartList = JSON.parse(localStorage.getItem('cartList')) || []

    // 象数组里面把本条数据添加进去
    // 4-4. 判断有没有这个数据
    //      每一个数据都有一个自己的 id
    //      只要看数组里面有没有 id 一样的数据, 就知道有没有这个数据了
    //      数组常用方法有一个叫做 some 的方法
    //      返回值:
    //        true: 表示数组里面有这个信息
    //        false: 表示数组里面没有这个信息
    let exits = cartList.some(item => {
        // 数组里面每一个的 id === 本页面的这条数据的 id
        return item.list_id === info.list_id
    })

    // console.log(exits)
    if (exits) {
        // 表示有这个信息了, 我们要让 number ++
        // console.log('已经存在 number ++')
        // 找到这个信息给他 number ++
        let data = null
        for (let i = 0; i < cartList.length; i++) {
        if (cartList[i].list_id === info.list_id) {
            data = cartList[i]
            break
        }
        }
        // data 就是我找到的这个信息
        data.number++

        // 4-5. 数量添加的时候, 小计价格要改变
        data.subtotal = data.number * data.list_price // 数量 * 单价
    } else {
        // 表示没有这个信息, 直接 push 就可以了
        // push 之前, 象里面添加一个 number 信息为 1
        info.number = 1

        // 4-5. 多添加一些信息
        info.subtotal = info.list_price // 因为默认是第一个, 小计就是单价
        info.isSelect = false // 默认不选中
        cartList.push(info)
    }

    // 在存储到 localStorage 里面
    localStorage.setItem('cartList', JSON.stringify(cartList))

    }else{
     	//未登录直接跳转到登录页面
        console.log('用户未登录')
        window.location.href='./login.html'
      }
    })

css

.goodsInfo{
    width: 1200px;
    height: 600px;
    margin: 20px auto;
    display: flex;
    align-items: center;
}
.goodsInfo >.left{
    width: 400px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.goodsInfo >.right{
    flex: 1;
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    height: 460px;
    font-size: 40px;
}
.goodsInfo >.right .addCart{
    width: 200px;
    height: 50px;
    font-size: 24px;
    cursor: pointer;
    border: none;
    background: #FF3232;
    color: #fff;
}
.goodsInfo >.right .buy{
    width: 200px;
    height: 50px;
    font-size: 24px;
    cursor: pointer;
    border: 1px solid #FF3232;
    background: #fff;
    color: #FF3232;
}
.goodsInfo >.right .goodsName{
    font-size: 30px;
    color: #333;
    letter-spacing: 0;
    line-height: 40px;
    font-weight: 400;
    margin: 0;
    padding-left: 50px;
}
.goodsInfo >.right .price{
    width: 100%;
    height: 40px;
    margin: 16px 0;
    padding-left: 50px;
    font-size: 24px;
    color: #FF3232;
    line-height: 40px;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Eclipse商城项目是一个基于Eclipse开发环境的在线商城平台。该项目旨在为用户提供一个方便购物的平台,用户可以在线浏览和购买各种商品。 Eclipse商城项目的主要特点和功能包括: 1. 商品分类和搜索: 在Eclipse商城中,商品按照不同的分类进行组织,用户可以根据自己的需要选择不同的分类,或者通过关键词搜索来查找特定的商品。 2. 商品展示和详情: 在商城首页中,用户可以浏览到最热销和最新上架的商品,每个商品都有独立的详情页面,提供商品的图片、描述、价格等详细信息。 3. 购物车和结算: 用户可以将自己感兴趣的商品加入购物车,并在结算时选择合适的支付方式进行支付。 4. 用户注册和登录: 用户可以通过注册账号来享受更多的功能和服务,并可以通过登录来管理自己的购物车和订单信息。 5. 订单管理和物流跟踪: 用户可以在个人中心中查看自己的订单信息,并可以进行订单的取消、退款等操作,还可以通过物流跟踪系统实时了解自己的订单配送状态。 6. 评价和评论: 用户可以对购买的商品进行评价和评论,为其他用户提供参考。 7. 特色推荐和活动促销: 商城会通过特色推荐和活动促销来吸引用户,为用户提供更多的优惠和福利。 总之,Eclipse商城项目通过提供全面的商品信息、方便的购物流程和良好的用户体验,旨在为用户提供一个便捷、安全、快速的在线购物平台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值