jq使用easyui的Progressbar进度条

博客主要介绍了controlProgressBar方法的逻辑。当参数为“none”时,隐藏已存在的进度条;当参数为“block”且进度条dom存在时,改变其display属性使其显示;当参数为“block”但进度条不存在时,将dom元素添加进页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

controlProgressBar方法逻辑:

第一个if判断:参数为"none"时进这儿,传"none"值表示进度条一定存在,这里是想让进度条隐藏

第二个if判断:参数为"block"+进度条dom存在时进这儿,表示想让进度条显示,只需要改变其display属性

第三个判断:参数为"block"+进度条不存在时进这儿,不存在进度条dom要将dom元素添加进页面

//控制进度条的显示与隐藏 传值"none"/"block"
function controlProgressBar(status){
  var ele = "progressOverlay";
  var dom =
    document.getElementById(ele) ||
    window.parent.document.getElementById(ele) ||
    window.parent.parent.document.getElementById(ele) ||
    window.top.document.getElementById(ele) ||
    $("iframe")
      .contents()
      .find("#" + ele)[0];
  if (status === "none") {
    $("#progressBar").progressbar("setValue",100)
    progressTimer && clearInterval(progressTimer)
    // 查询渲染完成 进度条隐藏
    setTimeout(()=>{
      dom.style.display = status;
    },200)
  }else if(dom){
    // 查询渲染开始 显示进度条 并从0开始
    dom.style.display = status;
    $("#progressBar").progressbar("setValue",0)
    // 获取进度条当前值
    let progressValue = $("#progressBar").progressbar("getValue");
    progressTimer && clearInterval(progressTimer)
    progressTimer = setInterval(()=>{
      if(progressValue < 90){
        progressValue += Math.floor(Math.random() * 10);
        progressValue = progressValue >= 100? 99:progressValue
        // 设置进度条当前值
        $("#progressBar").progressbar("setValue",progressValue)
      }else{
        clearInterval(progressTimer)
      }
    },200)
  }else{
    // 进度条没被渲染过
    var loadingHtml = `<div id="progressOverlay" class="progressOverlay pageOverlay">
                  <div class="progressOverlay-cont">
                      <div id="progressBar" class="easyui-progressbar" style="width:100%;height:30px"></div>
                      <div class="progressOverlay-title">正在加载...</div>
                      <div class="progressOverlay-map-bg"></div>
                  </div>
              </div>`;
    // before方法 在被选中元素之前加入
    $("#mapIframe").before(loadingHtml);
    // 动态添加easyui组件 需要刷新
    $.parser.parse($("#progressOverlay"));
    let progressValue = $("#progressBar").progressbar("getValue");
    progressTimer = setInterval(()=>{
      if(progressValue < 90){
        progressValue += Math.floor(Math.random() * 10);
        progressValue = progressValue >= 100? 99:progressValue
        $("#progressBar").progressbar("setValue",progressValue)
      }else{
        clearInterval(progressTimer)
      }
    },200)
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值