zoukankan      html  css  js  c++  java
  • 移动端可拖拽的进度条

     原生js  移动端可拖拽的进度条

    效果图:

    代码:

    复制代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>干货-课程-完成</title>
    <style>
    ul.lanren{
    margin:100px auto;
    }
    .scale_panel{
    color:#999;
    position:absolute;
    line-height:18px;
    left:60px;top:-0px;
    }
    .scale_panel>span:first-child{
    position: absolute;
    left: -5rem;
    font-size: 2rem;
    }
    .scale_panel>span:nth-child(2){
    position: absolute;
    right: -5rem;
    font-size: 2rem;
    }
    .scale>span{
    background-color: red;
    3rem;
    height:3rem;
    position:absolute;
    left:-2px;top:-15px;
    cursor:pointer;
    border-radius: 50%;
    font-size: 2rem;
    }
    .scale{
    background-repeat: repeat-x;
    background-position: 0 100%;
    background-image: linear-gradient(to right,#08D7F2 0%,#2BF06A 50%,#2BF06A 50%,#FC6076 100%);
    border-left: 1px #83BBD9 solid;
    43rem;
    height: 1rem;
    position: relative;
    border-radius: 2rem;
    }
    .scale>div{
    background-repeat: repeat-x;
    background-color: red; /*进度条颜色*/
    0px;
    position: absolute;
    height: 1rem;
    0; left: 0; bottom: 0;
    border-radius: 2rem;
    }
    .lanren>li{
    margin-left: 3.5rem;
    position:relative;
    list-style:none;
    font-size: 3rem;
    }
    #title{
    position: absolute;
    top: -6rem;
    left: 23rem;
    }
    </style>
    </head>
    <body>
    <!-- 可拖拽进度条 -->
    <ul class="lanren">
    <li><span id="title">0</span>
    <div class="scale_panel">
    <span class="f-left">吃力</span>
    <span class="f-right">轻松</span>
    <div class="scale" id="bar">
    <div></div>
    <span id="btn"></span>
    </div>
    </div>
    </li>
    </ul>
    <script src="js/jquery-3.2.1.min.js"></script>
    <script>
    // 进度条代码
    var scale = function (btn,bar,title){
    this.btn=document.getElementById(btn);
    this.bar=document.getElementById(bar);
    this.title=document.getElementById(title);
    this.step=this.bar.getElementsByTagName("div")[0];
    this.init();
    };
    scale.prototype={
    init:function (){
    var f=this,g=document,b=window,m=Math;
    f.btn.ontouchstart=function (e){
    var x=(e||b.event).touches[0].clientX;
    var l=this.offsetLeft;
    var max=f.bar.offsetWidth-this.offsetWidth;
    g.ontouchmove=function (e){
    var thisX=(e||b.event).touches[0].clientX;
    var to=m.min(max,m.max(-2,l+(thisX-x)));
    f.btn.style.left=to+'px';
    f.ondrag(m.round(m.max(0,to/max)*100),to);
    b.getSelection ? b.getSelection().removeAllRanges() : g.selection.empty();
    };
    g.ontouchend=new Function('this.onmousemove=null');
    };
    },
    ondrag:function (pos,x){
    this.step.style.width=Math.max(0,x)+'px';
    this.title.innerHTML=pos+'%';
    }
    }
    new scale('btn','bar','title');
    // });
    </script>
    </body>
    </html>

    复制代码
  • 相关阅读:
    c++ 网络编程(四) LINUX/windows下 socket 基于I/O复用的服务器端代码 解决多进程服务端创建进程资源浪费问题
    c++ 网络编程(三) LINUX/windows 进程间的通信原理与实现代码 基于多进程的服务端实现
    c++ 网络编程(二) linux 下多进程socket通信 多个客户端与单个服务端交互代码实现回声服务器
    c++ 网络编程(一)TCP/UDP windows/linux 下入门级socket通信 客户端与服务端交互代码
    c++ MFC图像处理CImage类常用操作代码
    vue 模板语法
    占位1
    MongoDB
    Node.js fs-文件系统
    nodeJs 常用模块(一)
  • 原文地址:https://www.cnblogs.com/520BigBear/p/7865872.html
Copyright © 2011-2022 走看看