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 上传图片预览问题
Dec 06 Javascript
JavaScript实现带标题的图片轮播特效
May 20 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
Dec 10 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
Oct 14 Javascript
jsonp跨域请求实现示例
Mar 13 Javascript
ES6中新增的Object.assign()方法详解
Sep 22 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
Nov 11 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
Jan 20 Javascript
jQuery实现动态添加和删除input框实例代码
Mar 26 jQuery
JavaScript工具库之Lodash详解
Jun 15 Javascript
解决layui laydate 时间控件一闪而过的问题
Sep 28 Javascript
vue 实现把路由单独分离出来
Aug 13 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
2020年4月新番动漫目录 官方宣布4月播出的作品一览
2020/03/08 日漫
[原创]PHP中通过ADODB库实现调用Access数据库之修正版本
2006/12/31 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
php + ajax 实现的写入数据库操作简单示例
2020/05/16 PHP
JavaScript 关键字屏蔽实现函数
2009/08/02 Javascript
JavaScript去掉空格的方法集合
2010/12/28 Javascript
JS批量操作CSS属性详细解析
2013/12/16 Javascript
JavaScript编程中的Promise使用大全
2015/07/28 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
2017/02/20 Javascript
jquery获取链接地址和跳转详解(推荐)
2017/08/15 jQuery
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
一文搞懂ES6中的Map和Set
2019/05/20 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
Python中统计函数运行耗时的方法
2015/05/05 Python
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
PyQt5重写QComboBox的鼠标点击事件方法
2019/06/25 Python
解决tensorflow 释放图,删除变量问题
2020/06/23 Python
python自动生成sql语句的脚本
2021/02/24 Python
纯CSS3实现8组超炫酷鼠标滑过图片动画
2016/03/16 HTML / CSS
HTML5引入的新数组TypedArray介绍
2012/12/24 HTML / CSS
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
求职简历中个人的自我评价
2013/12/25 职场文书
yy结婚证婚词
2014/01/10 职场文书
家庭教育先进个人事迹材料
2014/01/24 职场文书
在职证明格式样本
2015/06/15 职场文书
行政处罚听证告知书
2015/07/01 职场文书
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis
django中websocket的具体使用
2022/01/22 Python
vue实现列表垂直无缝滚动
2022/04/08 Vue.js