• 直线进度条


    js

    Page({
      data: {
        progressWidth: 0,
        progressTime: 60,
        mark: true,
        playPausetips: "开始"
      },
      playbtn() {
        let that = this;
        let mark = that.data.mark;
        if (mark) {
          that.timer = setInterval(that.run, 1000); //that.timer关键点
          wx.showToast({
            title: '开始',
          })
          that.setData({
            mark: false,
            playPausetips: "暂停"
          })
        } else {
          clearInterval(that.timer);
          wx.showToast({
            title: '暂停',
          })
          that.setData({
            mark: true,
            playPausetips: "开始"
          })
        }
      },
      run() {
        let that = this;
        let totalProgressTime = 60 //
        let progressWidth = that.data.progressWidth; //显示进度
        let progressTime = that.data.progressTime; //时间
    
        if (progressWidth === 100) {
          wx.showToast({
            title: '结束回调处理',
          })
          clearInterval(that.timer);
          that.setData({
            progressTime: totalProgressTime, //进度条需要总时间s
            progressWidth: 100, //进度100%
            progressTime: 60
          })
          return;
        }
        progressTime--;
        progressWidth = (totalProgressTime - progressTime) * (100 / 60)
        that.setData({
          progressWidth: progressWidth,
          progressTime: progressTime
        })
      }
    
    })

    wxml

    <view class='out' style='margin-top:10px'>
      <view class='in' style='{{progressWidth}}%'></view> 
    </view>
    <view class='caozuo'>
      <text>{{progressTime}}秒</text>
      <text bindtap='playbtn' data-change='1'>{{playPausetips}}</text>
    </view>

    wxss

    page{background: #fff;}
    .out {margin-left:auto;margin-right:auto;250px;height:20px;border:1px solid red;border-radius:20px;overflow:hidden;}
    .in {height:100%;background-color:red;}
    .caozuo{font-size:14px;color:#333;margin-left:auto;margin-right:auto;250px;margin-top:10px;display: flex;justify-content:space-between}
  • 相关阅读:
    (2)javascript的基本语法、数据结构、变量
    (1)认识javascript
    CSS 浅析position:relative/absolute定位方式
    jquery实现下拉框多选
    Vue.js not detected
    手机代理调试Charles Proxy和Fiddler
    render函数之jsx应用
    vue组件通信方式(多种方案)
    点击页面空白处地方,隐藏弹窗
    css圆角不圆和1px方案
  • 原文地址:https://www.cnblogs.com/chenmiaosong/p/9203274.html
Copyright © 2020-2023  润新知