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 相关文章推荐
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
Oct 29 Javascript
关于图片按比例自适应缩放的js代码
Oct 30 Javascript
基于jquery DOM写的类似微博发布的效果
Oct 20 Javascript
JS 实现获取打开一个界面中输入的值
Mar 19 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
Dec 11 Javascript
JavaScript遍历table表格中的某行某列并打印其值
Jul 08 Javascript
深入理解Javascript箭头函数中的this
Feb 13 Javascript
Vue2几种常见开局方式详解
Sep 09 Javascript
Javascript 严格模式use strict详解
Sep 16 Javascript
JavaScript数组去重的方法总结【12种方法,号称史上最全】
Feb 28 Javascript
原生js实现碰撞检测
Mar 12 Javascript
微前端qiankun改造日渐庞大的项目教程
Jun 21 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实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
PHP 源代码压缩小工具
2009/12/22 PHP
php写的简易聊天室代码
2011/06/04 PHP
mysql,mysqli,PDO的各自不同介绍
2012/09/19 PHP
探讨方法的重写(覆载)详解
2013/06/08 PHP
PHP的Socket通信之UDP通信实例
2015/07/02 PHP
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
Javascript学习笔记5 类和对象
2010/01/11 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
深入解读JavaScript中的Hoisting机制
2015/08/12 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
layui 实现自动选择radio单选框(checked)的方法
2019/09/03 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
[00:10]神之谴戒
2019/03/06 DOTA
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
Python安装pycurl失败的解决方法
2018/10/15 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
Python递归实现打印多重列表代码
2020/02/27 Python
python和js交互调用的方法
2020/06/23 Python
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
学校司机岗位职责
2013/11/14 职场文书
人力资源管理专业学生自我评价
2013/11/20 职场文书
财务副总经理工作职责
2013/11/25 职场文书
集体生日活动方案
2014/08/18 职场文书
水电工程师岗位职责
2015/02/13 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫