实现拖拽进度条

用到了拖拽功能

<style>
        .wrap{
            width:500px;
            border: 1px solid;
            padding: 20px;
        }

        .process{
            position: relative;
            width:80%;
            height: 30px;
            background-color: #dddddd;
            border-radius: 2px;
        }
        .process-bar{
            width: 0%;
            height: 30px;
            background-color: #187aab;
            border-radius: 2px;
        }
        .bar{
            top: -5px;
            left: -5px;
            position: absolute;
            width: 10px;
            height: 40px;
            border-radius: 2px;
            background-color: #91cdea;
            display: inline-block;
        }
    </style>
</head>
<body>
<div class="wrap">
    <div class="process">
        <div class="process-bar"></div>
        <span class="bar" id="mybar"></span>
    </div>
</div>
<script src="../js/libs/jquery-1.11.3.min.js"></script>
<script>
  var isDrag = false;
  var fullwidth = $(".process").width();
  var mouseX,left;
  $("#mybar").bind("mousedown", function (e) {
      isDrag = true;
      mouseX = e.clientX;
      left = $(this).position().left;
      console.log(mouseX+" "+left);
      return false;
  });

    $(document).bind("mousemove", function (e) {
        if(isDrag){
            var mX = e.clientX;
            var l = mX-mouseX+left;
            console.log(mX+" "+l);
            if(l<-5){
                l=-5;
            }else if(l>fullwidth-5){
                l=fullwidth-5;
            }
            $("#mybar").css('left',l);
            var p = Math.round((l+5)*100/fullwidth);
            $(".process-bar").css('width',p+'%');
        }
    });
    $(document).bind("mouseup", function () {
        isDrag = false;
        return false;
    })

    //点击 到点击处 
$(".process").click(function (e) {
    if(!isDrag){
        var eX = e.clientX;
        var l = $("#mybar").offset().left;
        var l1 = $("#mybar").position().left;
        var ox = eX-l;
        var w = $(".process-bar").width();
        var p = (w+ox)*100/fullwidth;
        $(".process-bar").css('width',p+'%');
        $("#mybar").css('left',l1+ox);
        console.log(eX+" "+l+" "+w+" "+p);
    }

})
</script>

效果



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值