vue3配置简单进度条

1.html部分

                <div

                  class="yarijdt"

                  @mousedown="startDrag"

                  @mousemove="onDragging"

                  @mouseup="stopDrag"

                >

                  <div class="yarijdtbox">

                    <div

                      class="progress"

                      :style="{ width: progress + '%' }"

                    ></div>

                    <div

                      class="handle"

                      :style="{ left: progress + '%' }"

                      ref="handle"

                    ></div>

                  </div>

                </div>

2.jsbufen views为变量

const progress = ref(0);

const startDrag = (event) => {

  isDragging.value = true;

};

const onDragging = (event) => {

  if (isDragging.value) {

    const progressBar = handle.value.parentElement;

    const rect = progressBar.getBoundingClientRect();

    let x = event.clientX - rect.left;

    let width = progressBar.clientWidth;

    if (x < 0) {

      x = 0;

    } else if (x > width) {

      x = width;

    }

    progress.value = (x / width) * 100;

    console.log("大赛", progress.value);

    views.value = Math.round(progress.value * 100);

  }

};

const stopDrag = () => {

  isDragging.value = false;

};

3.css部分

.yarijdt {

  width: 12.5rem;

  height: 0.625rem;

  cursor: pointer;

}

.yarijdtbox {

  height: 100%;

  width: 100%;

  background: white;

  border-radius: 0.5rem;

  position: relative;

}

.progress {

  height: 100%;

  width: 0%;

  background: #1dc47d;

  border-radius: 0.5rem;

}

.handle {

  width: 0.75rem;

  height: 0.75rem;

  border-radius: 50%;

  background: white;

  border: 0.25rem solid #1dc47d;

  position: absolute;

  left: 0;

  top: 50%;

  transform: translate(-50%, -50%);

  z-index: 100;

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值