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 相关文章推荐
浅谈javascript 面向对象编程
Oct 28 Javascript
js拦截alert对话框另类应用
Jan 16 Javascript
javascript转换日期字符串为Date日期对象的方法
Feb 13 Javascript
JS实现title标题栏文字不间断滚动显示效果
Sep 07 Javascript
js微信支付实现代码
Dec 22 Javascript
Vue-Router实现页面正在加载特效方法示例
Feb 12 Javascript
Bootstrap禁用响应式布局的实现方法
Mar 09 Javascript
validationEngine 表单验证插件使用实例代码
Jun 15 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
Jul 15 Javascript
微信小程序错误this.setData报错及解决过程
Sep 18 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
Mar 03 Javascript
JS前端轻量fabric.js系列物体基类
Aug 05 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读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
destoon供应信息title调用出公司名称的方法
2014/08/22 PHP
phpstorm编辑器乱码问题解决
2014/12/01 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
深入浅析Yii admin的权限控制
2016/08/31 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
在Javascript里访问SharePoint列表数据的实现方法
2011/05/22 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
2014/03/05 Javascript
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
2016/06/14 Javascript
jQuery中DOM节点的删除方法总结(超全面)
2017/01/22 Javascript
谈谈JavaScript数组常用方法总结
2017/01/24 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
对layui中表单元素的使用详解
2018/08/15 Javascript
vue自定义表单生成器form-create使用详解
2019/07/19 Javascript
vue组件命名和props命名代码详解
2019/09/01 Javascript
js实现数字滚动特效
2019/12/16 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
js实现验证码干扰(动态)
2021/02/23 Javascript
使用Python编写Linux系统守护进程实例
2015/02/03 Python
基于python脚本实现软件的注册功能(机器码+注册码机制)
2016/10/09 Python
如何用itertools解决无序排列组合的问题
2017/05/18 Python
python实现二叉查找树实例代码
2018/02/08 Python
python 模拟银行转账功能过程详解
2019/08/06 Python
关于ResNeXt网络的pytorch实现
2020/01/14 Python
Python 如何测试文件是否存在
2020/07/31 Python
详解如何解决canvas图片getImageData,toDataURL跨域问题
2018/09/17 HTML / CSS
美国益智玩具购物网站:Fat Brain Toys
2017/11/03 全球购物
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
创业计划实施的7大步骤
2014/02/05 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
起诉书范文
2015/05/20 职场文书
投资入股协议书
2016/03/22 职场文书
详解PHP Swoole与TCP三次握手
2021/05/27 PHP
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python