javaScript实现进度条:鼠标onmousedown按下进度条框左右拖动,实现进度条的进度展示

效果图:

注意点:

  • 现象描述:鼠标按下进度条后滑出进度框才放开,则当鼠标回到进度条框内时,无需再次按下,也会自己触发进度条跟随鼠标的左右滑动
  • 解决技巧:mouseup事件写成document.onmouseup;而不是big.onmouseup
<style>
    #box{
      width: 243px;
      height: 30px;
      margin: 100px auto;
    }
    #big{
      width: 200px;
      height: 20px;
      background-color: #ccc;
      float: left;
    }
    #small{
      /* width: 10px; */
      width: 0;
      height: 20px;
      background-color: pink;
    }
    span{
      float: right;
    }
  </style>
<div id="box">
    <div id="big">
      <div id="small"></div>
    </div>
    <span>0</span>
  </div>
var big = document.querySelector('#big')
  var small = document.querySelector('#small')
  var sp = document.querySelector('span')

  big.onmousedown = function(){
    big.onmousemove = function(e){
      var e = e || window.event
      var x = e.offsetX
      
      small.style.width = x + 'px';
      var pecen = Math.round(x/big.clientWidth*100)
      pecen == 0 ? sp.innerHTML = pecen : sp.innerHTML = pecen + '%'
      
    }
  }

  //要用documen.onmouseup,才可实现鼠标在框的外面松开后,不再触动进度条事件
  //用big.onmouseup的话,鼠标按下进度条后,鼠标滑出框后松开,再回到进度条框上还会继续触发进度条事件
  document.onmouseup = function(){
    big.onmousemove = null
  }

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值