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 TextArea动态显示剩余字符
Oct 22 Javascript
StringTemplate遇见jQuery冲突的解决方法
Sep 22 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
Sep 05 Javascript
使用javascript插入样式
Mar 14 Javascript
Javascript的比较汇总
Jul 25 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
Aug 05 Javascript
bootstrap css样式之表单
Jan 19 Javascript
Node.js中的child_process模块详解
Jun 08 Javascript
JQuery判断radio单选框是否选中并获取值的方法
Jan 17 jQuery
vue自定义指令之面板拖拽的实现
Apr 14 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
Oct 31 Javascript
JavaScript实现答题评分功能页面
Jun 24 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获取表单所有复选框的值的方法
2014/08/28 PHP
Yii视图CGridView列表用法实例分析
2016/07/12 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
javascript while语句和do while语句的区别分析
2007/12/08 Javascript
Javascript 阻止javascript事件冒泡,获取控件ID值
2009/06/27 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
借助JavaScript脚本判断浏览器Flash Player信息的方法
2014/07/09 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
Javascript基础学习笔记(菜鸟必看篇)
2016/07/22 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
js判断是否为空和typeof的用法(详解)
2016/10/07 Javascript
原生JS实现层叠轮播图
2017/05/17 Javascript
利用require.js与angular搭建spa应用的方法实例
2017/07/19 Javascript
前端js中的事件循环eventloop机制详解
2019/05/15 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
jQuery实现简单飞机大战
2020/07/05 jQuery
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
[01:31]DOTA2上海特级锦标赛 SECRET战队完整宣传片
2016/03/16 DOTA
[51:36]EG vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
使用pandas对矢量化数据进行替换处理的方法
2018/04/11 Python
Django读取Mysql数据并显示在前端的实例
2018/05/27 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
python常用数据重复项处理方法
2019/11/22 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
如何提高python 中for循环的效率
2020/04/15 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
2020/07/20 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
校园学雷锋广播稿
2014/10/08 职场文书
2014年幼师工作总结
2014/11/22 职场文书
2014年禁毒工作总结
2014/11/24 职场文书
优秀大学生申请书
2019/06/24 职场文书
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis