【每日一练】克鲁赛德战记小案例

 

思路分析:

1. 点击每一个tab栏:tab栏切换

①排他思想修改样式

②获取当前点击的type类型

③ajax发送请求

④服务器响应之后,渲染页面

2.网络请求loading动画思路

原理:gif动图

显示:ajax发送请求之前

隐藏:ajax响应之后

js代码:

let liList = document.querySelectorAll('.nav li')
    let cover = document.querySelector('.cover')

for (let i = 0; i < liList.length; i++) {
      //1.类名排他
      liList[i].onclick = function () {
        document.querySelector('.active').classList.remove('active')
        this.classList.add('active')
        //2.获取点击的li元素的span文本
        let type = this.children[1].innerText
        //发送请求ajax之前,显示遮罩层loading
        cover.style.display = 'block'
        //3.ajax发送请求
        axios({
          url: 'https://autumnfish.cn/api/cq/category',
          method: 'get',
          params: { type }
        }).then(res => {
          //成功回调
          console.log(res)
          //定时器
          setTimeout(function () {
            cover.style.display = 'none'
            //渲染页面
            renderData(res.data.data.heros)
          }, 300)
        })
      }
}

    //页面一加载,就默认点击第一个
liList[0].onclick()

    //渲染封装
    const renderData = arr => {
      document.querySelector('.cq-list>tbody').innerHTML = arr.map(item => {
        return `<tr>
            <td>
            <img class="icon" src="${item.heroIcon}" alt="" />
            <span>
                ${item.heroName}
            </span>
          </td>
          <td>
            <img class="skill" src="${item.skillIcon}" alt="" />
            ${item.skillName}
          </td>
          <td>
            <img class="weapon" src="${item.weaponIcon}" alt="" />
            ${item.weaponName}
          </td>
        </tr>`}).join("")
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢豪杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值