展现运动类型

  • 同样,我们通过函数的方式将运动类型插入我们的HTML代码中
javascript 复制代码
 _renderWorkout(workout) {
    let html = `
    <li class="workout workout-${workout.type}" data-id="${workout.id}">
            <h2 class="workout__title">${workout.description}</h2>
            <div class="workout__details">
              <span class="workout__icon">${
                workout.type === 'running' ? '🏃‍♂️' : '🚴‍♀️'
              }</span>
              <span class="workout__value">${workout.distance}</span>
              <span class="workout__unit">km</span>
            </div>
            <div class="workout__details">
              <span class="workout__icon">⏱</span>
              <span class="workout__value">${workout.duration}</span>
              <span class="workout__unit">min</span>
            </div>
    `;
    if (workout.type === 'running')
      html += `
      <li>
         <div class="workout__details">
            <span class="workout__icon">⚡️</span>
            <span class="workout__value">${Workout.pace.toFixed(1)}</span>
            <span class="workout__unit">min/km</span>
          </div>
          <div class="workout__details">
            <span class="workout__icon">🦶🏼</span>
            <span class="workout__value">${workout.cadence}</span>
            <span class="workout__unit">spm</span>
          </div>`;
    if (workout.type === 'cycling')
      html += `
         <div class="workout__details">
            <span class="workout__icon">⚡️</span>
            <span class="workout__value">${Workout.speed.toFixed(1)}</span>
            <span class="workout__unit">min/km</span>
          </div>
          <div class="workout__details">
            <span class="workout__icon">🦶🏼</span>
            <span class="workout__value">${workout.elevationGain}</span>
            <span class="workout__unit">spm</span>
          </div>
          </li>`;
  }
}
  • 这里主要注意我们需要把相同的部分和不通的部分分开这么写就行了,然后把数据变化的地方用模板自变量的方式来写入即可,非常简单,就废话不多说了,这里有个月份的读取,上面的代码需要修改一下来让我们读取到现在的月份和日
js 复制代码
  _setDescription() { //私有方法
    // prettier-ignore
    
    const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
    this.description = `${this.type[0].toUpperCase()}${this.type.slice(1)} on ${
      months[this.date.getMonth()]//获取月份 
    } ${this.date.getDate()}`; //获取日期
  }
  • 现在我们HTML的模板已经做好,现在我们只需要知道我们如何或者说在哪里去插入我们的html就可以了
js 复制代码
  form.insertAdjacentHTML('afterend', html);//将html插入到form后面
  • 这样就将表单完全的展现出来了
  • 然后,不要忘记,每次输入时候隐藏表单,并清空上一次输入内容,方便我们的下一次输入
js 复制代码
    // 隐藏表单并清空输入
    this._hideForm();

  _hideForm() {
    //清空表单
    inputDistance.value =
      inputDuration.value =
      inputCadence.value =
      inputElevation.value =
        '';
    //隐藏表单
    form.style.display = 'none';
    form.classList.add('hidden');
    //一秒可后显示表单
    setTimeout(() => (form.style.display = 'grid'), 1000);
  }
相关推荐
软件开发技术深度爱好者38 分钟前
小学英语单词魔法学园HTML5实现
javascript·html5·英语学习
勉灬之43 分钟前
Next.js + Prisma 跨平台部署踩坑记
开发语言·javascript·ecmascript
糖果店的幽灵1 小时前
langgraph分支之 - 动态分支(Dynamic Branch)
java·前端·javascript·人工智能·langgraph
这是个栗子1 小时前
前端开发中的常用工具函数(九)
开发语言·javascript·ecmascript·at
Revolution613 小时前
一段 JavaScript 代码执行时,到底发生了什么
前端·javascript
To_OC12 小时前
LC 131 分割回文串:刚学回溯时,我连怎么切字符串都想不明白
javascript·算法·leetcode
To_OC13 小时前
LC 42 接雨水:暴力超时卡半天?前后缀数组一用就通了
javascript·算法·leetcode
小林ixn14 小时前
从 ??= 到 onKeyDown:一个 React 组件的“自我修养”
前端·javascript·react.js
এ慕ོ冬℘゜14 小时前
前端实战:jQuery 多条件联合搜索(标题模糊查询 + 日历时间段筛选)
前端·javascript·jquery
随心点儿15 小时前
js postMessage 实现跨域发送消息-应用示例
javascript·ecmascript·postmessage