vue3+elementPlus+原生js:根据浏览器宽度的element进度条跟着缩放

项目背景:

浏览器缩放时,el进度条还是固定的宽度无法达到自适应状态,所以要使用原生js获取dom来进行判断即可

html层,四个环形进度条

<div class="progressState">
  <el-progress style="" status="success" type="circle" :percentage="xxx"
...
  </el-progress>

  <el-progress style="" status="success" type="circle" :percentage="xxx"
...
  </el-progress>

  <el-progress style="" status="success" type="circle" :percentage="xxx"
...
  </el-progress>

  <el-progress style="" status="success" type="circle" :percentage="xxx"
...
  </el-progress>
              
</div>

 js层,直接编写响应函数,先用querySelectorAll获取所有进度条的dom之后,在进行循环遍历在for循环里进行样式的改写

const setDom = () => {
  // 这里是浏览器的宽度,用来判断进度条的大小样式
  let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth;
  // 获取所有进度条的dom
  let progressDom = document.querySelectorAll(".el-progress");
  
  //进度条的响应样式
  for (let i = 0; i < progressDom.length; i++) {
    //当浏览器宽度大于1200,进度条宽度为70px,下面以此类推
    if (htmlWidth >= 1200) {
      progressDom[i].style.width = `70px`;
    } else if (htmlWidth <= 1200 && htmlWidth >= 720) {
      progressDom[i].style.width = `60px`;
    } else if (htmlWidth < 720) {
      progressDom[i].style.width = `30px`;
    }
  }

  }

//最后在vue视图挂载,window.onresize指的是实时监听变化
onMounted(() => {
  setDom();
  window.onresize = () => {
    setDom();
  };
});

作者上一篇文章,

vue3+elementPlus:el-progress环形进度条自定义样式和文本_意初的博客-CSDN博客vue3+elementPlus:el-progress环形进度条自定义颜色,在属性里有:color自定义回调的颜色函数,:percentage代表进度条(数量),如果有后端接口这里就放接口的数据,type="circle"是环形,template是模板,用来封装自定义的样式或者数据,在el-progress里包裹一层template,里面用来自定义进度条和文本数据,事件层简单demo,根据数据自定义颜色,完整代码:html层的重点:①template模板里要放percentage②如果有后端接口:perchttps://blog.csdn.net/weixin_43928112/article/details/127370918

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值