ajax接口-随机、价格销量排序-demo

33 篇文章 0 订阅
12 篇文章 0 订阅

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

html.css(包括js)

<!-- css -->
  <link href="http://netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
  <link rel="stylesheet" href="./css/main.css" />
</head>

<body>
  <!-- html -->
  <div class="container">
    <div class="btns">
      <button class="btn" onclick="sortHandle('r')">随机</button>
      <button class="btn" onclick="sortHandle('p')">价格</button>
      <button class="btn" onclick="sortHandle('s')">销量</button>
    </div>

    <div class="content"></div>
    <ul class="nav">
      <!-- emmet语法 -->
      <li>
        <i class="fa fa-home fa-fw"></i>
        <span>首页</span>
      </li>
      <li class="active">
        <i class="fa fa-fire fa-fw"></i>
        <span>列表</span>
      </li>
      <li>
        <i class="fa fa-cart-plus fa-fw"></i>
        <span>购物车</span>
      </li>
      <li>
        <i class="fa fa-user fa-fw"></i>
        <span>我的</span>
      </li>
    </ul>
  </div>
<!-- js -->
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/2.2.1/jquery.min.js"></script>
  <script>
    var books = [];## `main.css`

    function initHtml() {
      var strHtml = "";
      books.forEach(function (book) {
        strHtml += `<div class="card">
            <img src="${book.img}" alt="" />
            <h3>${book.title}</h3>
            <p class="price">¥${book.price}</p>
            <p class="sales">销量:${book.sales}</p>
          </div>`;
      });
      $(".content").html(strHtml);
    }


    /* 排序
        数组.sort()    默认按照首字符串大小排序
        数组.sort(function(a,b){return a-b})    按照数值,从小到大排列
        数组.sort(function(a,b){return b-a})    按照数值,从大到小排列
    */

    function sortHandle(type) {
      switch (type) {
        case "r":
          books.sort(function (a, b) {
            return Math.random() - 0.5;
          });
          break;
        case "p":
          books.sort((a, b) => a.price - b.price);
          break;
        case "s":
          books.sort((a, b) => a.sales - b.sales);
          break;
        default:
          break;
      }
      initHtml();
    }

    $(function () {
      // 底部导航选项
      $('.nav>li').click(function () {
        $(this).addClass('active').siblings().removeClass('active');
      });
      // 
      $.getJSON("http://api.cat-shop.penkuoer.com/books.json", function (data) {
        books = data;
        initHtml(data);
      });
    });
  </script>

main.css

html,
body,
.container {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}

.container {
  display: flex;
  flex-direction: column;
}

.container .content {
  flex: 1;
}

ul,
li {
  margin: 0;
  padding: 0;
}

li {
  list-style: none;
}

.container .btns {
  position: fixed;
  top: 0;
  background: white;
  padding-bottom: 10px;
}

.container .nav {
  display: flex;
  height: 50px;
  align-items: center;
  justify-content: space-around;
  border-top: 1px solid #ccc;
  position: fixed;
  bottom: 0;
  width: 100%;
  background: white;
}

.container .nav li {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.container .nav li span {
  font-size: 0.6rem;
}

.container .nav li.active {
  color: deeppink;
}

.card {
  width: 180px;
  height: 270px;
  padding: 0.5rem;
  float: left;
}

/* .content .card {
  float: left;
} */
.content h3 {
  padding: 0;
  font-size: 0.9rem;
  margin: 0.2rem;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}

.content p {
  padding: 0;
  margin: 0.1rem 0;
  font-size: 0.7rem;
}

.btn {
  border: 0;
  background-color: deeppink;
  color: white;
  width: 3rem;
  height: 1.5rem;
  cursor: pointer;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值