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的事件描述
Sep 08 Javascript
提高 DHTML 页面性能
Dec 25 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
Apr 27 Javascript
web网页按比例显示图片实现原理及js代码
Aug 09 Javascript
JS命名空间的另一种实现
Aug 09 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
Oct 17 Javascript
jQuery simplePage+AJAX plus分页插件用法实例
Feb 17 Javascript
关于微信jssdk实现多图片上传的一点心得分享
Dec 13 Javascript
vue cli webpack中使用sass的方法
Feb 24 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
Dec 05 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
Nov 16 Javascript
vue3.0+vue-router+element-plus初实践
Dec 02 Vue.js
原生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/03/14 PHP
php编写的一个E-mail验证类
2015/03/25 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
js传值 判断
2006/10/26 Javascript
Mootools 1.2教程 事件处理
2009/09/15 Javascript
jquery中eq和get的区别与使用方法
2011/04/14 Javascript
jQuery新的事件绑定机制on()示例应用
2014/07/18 Javascript
js 操作符汇总
2014/11/08 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
详解JavaScript中this关键字的用法
2016/05/26 Javascript
Angular 常用指令实例总结整理
2016/12/13 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
vue.js移动端tab组件的封装实践实例
2017/06/30 Javascript
基于Vue2.0+ElementUI实现表格翻页功能
2017/10/23 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
python实现判断数组是否包含指定元素的方法
2015/07/15 Python
Python列表list排列组合操作示例
2018/12/18 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
详解Python学习之安装pandas
2019/04/16 Python
python matplotlib拟合直线的实现
2019/11/19 Python
Python中如何引入第三方模块
2020/05/27 Python
Python3.8安装Pygame教程步骤详解
2020/08/14 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
python 6种方法实现单例模式
2020/12/15 Python
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
临床医学专业学生的自我评价分享
2013/11/21 职场文书
鲜果饮品店创业计划书
2014/01/21 职场文书
幼儿园消防安全制度
2014/01/26 职场文书
2015年植树节活动总结
2015/02/06 职场文书
长江七号观后感
2015/06/11 职场文书
node.js如何自定义实现一个EventEmitter
2021/07/16 Javascript
记一次Mysql不走日期字段索引的原因小结
2021/10/24 MySQL
python实现学生信息管理系统(面向对象)
2022/06/05 Python