JavaScript实现水平进度条拖拽效果


Posted in Javascript onJanuary 18, 2017

本文实例为大家分享水平进度条拖拽效果的js具体代码,供大家参考,具体内容如下

<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    *{
      margin: 0;
      padding: 0;
    }
    .scroll{
      margin:100px;
      width: 500px;
      height: 5px;
      background: #ccc;
      position: relative;
    }
    .bar{
      width: 10px;
      height: 20px;
      background: #369;
      position: absolute;
      top: -7px;
      left: 0;
      cursor: pointer;
    }
    .mask{
      position: absolute;
      left: 0;
      top: 0;
      background: #369;
      width: 0;
      height: 5px;
    }
  </style>  
</head>
<body>
  <div class="scroll" id="scroll">
    <div class="bar" id="bar">

    </div>
    <div class="mask" id="mask"></div>
  </div>
  <p></p>
  <script>  
    var scroll = document.getElementById('scroll');
    var bar = document.getElementById('bar');
    var mask = document.getElementById('mask');
    var ptxt = document.getElementsByTagName('p')[0];
    var barleft = 0;
    bar.onmousedown = function(event){
      var event = event || window.event;
      var leftVal = event.clientX - this.offsetLeft;
      var that = this;
       // 拖动一定写到 down 里面才可以
      document.onmousemove = function(event){
        var event = event || window.event;
        barleft = event.clientX - leftVal;     
        if(barleft < 0)
          barleft = 0;
        else if(barleft > scroll.offsetWidth - bar.offsetWidth)
          barleft = scroll.offsetWidth - bar.offsetWidth;
        mask.style.width = barleft +'px' ;
        that.style.left = barleft + "px";
        ptxt.innerHTML = "已经走了" + parseInt(barleft/(scroll.offsetWidth-bar.offsetWidth) * 100) + "%";

        //防止选择内容--当拖动鼠标过快时候,弹起鼠标,bar也会移动,修复bug
        window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
      }

    }
    document.onmouseup = function(){
      document.onmousemove = null; //弹起鼠标不做任何操作
    }
  </script>
</body>
</html>

效果图:

JavaScript实现水平进度条拖拽效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS类定义原型方法的两种实现的区别评论很多
Sep 12 Javascript
javascript实现很浪漫的气泡冒出特效
Sep 05 Javascript
js不间断滚动的简单实现
Jun 03 Javascript
jQuery实现限制文本框的输入长度
Jan 11 Javascript
JavaScript实现仿Clock ISO时钟
Jun 29 Javascript
webpack4.x打包过程详解
Jul 18 Javascript
js中怎么判断两个字符串相等的实例
Jan 17 Javascript
微信小程序实现简易table表格
Jun 19 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
Oct 31 Javascript
jquery实现弹窗(系统提示框)效果
Dec 10 jQuery
关于element-ui表单中限制输入纯数字的解决方式
Sep 08 Javascript
ES6 十大特性简介
Dec 09 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
Jan 18 #Javascript
基于JavaScript实现窗口拖动效果
Jan 18 #Javascript
原生js实现节日时间倒计时功能
Jan 18 #Javascript
原生js实现返回顶部缓冲效果
Jan 18 #Javascript
详解jquery validate实现表单验证 (正则表达式)
Jan 18 #Javascript
原生js实现中奖信息无间隙滚动效果
Jan 18 #Javascript
js实现简单的网页换肤效果
Jan 18 #Javascript
You might like
杏林同学录(九)
2006/10/09 PHP
微盾PHP脚本加密专家php解密算法
2020/09/13 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
jquery 图片预加载 自动等比例缩放插件
2008/12/25 Javascript
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
2014/08/30 Javascript
javascript内置对象操作详解
2015/02/04 Javascript
javascript实现可键盘控制的抽奖系统
2016/03/10 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
JS中的回调函数实例浅析
2018/03/21 Javascript
layui获取选中行数据的实例讲解
2018/08/19 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
详解在Python程序中自定义异常的方法
2015/10/16 Python
Python中标准模块importlib详解
2017/04/16 Python
PyQt5每天必学之布局管理
2018/04/19 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
详解Python用户登录接口的方法
2019/04/17 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
python中str内置函数用法总结
2020/12/27 Python
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
资产评估专业学生的自我鉴定
2013/11/14 职场文书
大学生党员自我批评
2014/02/14 职场文书
《鱼游到了纸上》教学反思
2014/02/20 职场文书
股份转让协议书
2014/04/12 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
淘宝文案策划岗位职责
2015/04/14 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
检讨书范文大全
2015/05/07 职场文书
辩论会主持词
2015/07/03 职场文书
初中语文教师研修日志
2015/11/13 职场文书
2016年质量月活动总结报告
2016/04/05 职场文书
阿里云 Windows server 2019 配置FTP
2022/04/28 Servers