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 相关文章推荐
jquery 构造函数在表单提交过程中修改数据
May 25 Javascript
jquery事件的ready()方法使用详解
Nov 11 Javascript
php基于redis处理session的方法
Mar 14 Javascript
JS实现根据用户输入分钟进行倒计时功能
Nov 14 Javascript
JS插件plupload.js实现多图上传并显示进度条
Nov 29 Javascript
bootstrap导航条实现代码
Dec 28 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
Jan 18 Javascript
vue2.0实战之基础入门(1)
Mar 27 Javascript
Angular简单验证功能示例
Dec 22 Javascript
微信小程序 调用微信授权窗口相关问题解决
Jul 25 Javascript
React+Redux实现简单的待办事项列表ToDoList
Sep 29 Javascript
原生js实现二级联动菜单
Nov 27 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
php MySQL与分页效率
2008/06/04 PHP
基于pear auth实现登录验证
2010/02/26 PHP
php实现可运算的验证码
2015/11/10 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
PHP查询附近的人及其距离的实现方法
2016/05/11 PHP
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
15款jQuery分布引导插件分享
2015/02/04 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
AngularJS基础 ng-click 指令示例代码
2016/08/01 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
2017/08/29 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
layui内置模块layim发送图片添加加载动画的方法
2019/09/23 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
python 默认参数相关知识详解
2019/09/18 Python
Python新手如何进行闭包时绑定变量操作
2020/05/29 Python
解决c++调用python中文乱码问题
2020/07/29 Python
Why we need EJB
2016/10/20 面试题
新闻专业个人自我评价
2013/09/21 职场文书
外语专业毕业生自我评价分享
2013/10/05 职场文书
八一慰问活动方案
2014/02/07 职场文书
2014新年元旦活动策划方案
2014/02/18 职场文书
出纳担保书范文
2014/04/02 职场文书
教师批评与自我批评(群众路线)
2014/10/15 职场文书
房屋认购协议书
2015/01/29 职场文书
地震捐款简报
2015/07/21 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers