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 相关文章推荐
地震发生中逃生十大法则
May 12 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
Aug 02 Javascript
jQuery截取指定长度字符串的实现原理及代码
Jul 01 Javascript
浅谈javascript中createElement事件
Dec 05 Javascript
JavaScript encodeURI 和encodeURIComponent
Dec 04 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
Apr 26 Javascript
JavaScript实现图片轮播组件代码示例
Nov 22 Javascript
关于javascript事件响应的基础语法总结(必看篇)
Dec 26 Javascript
Node连接mysql数据库方法介绍
Feb 07 Javascript
React 组件渲染和更新的实现代码示例
Feb 21 Javascript
vue实现短信验证码输入框
Apr 17 Javascript
9个JavaScript日常开发小技巧
Oct 06 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
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
php输出形式实例整理
2020/05/05 PHP
为超链接加上disabled后的故事
2010/12/10 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
2016/01/18 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
AngualrJs清除定时器遇到的坑
2017/10/13 Javascript
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
2017/12/09 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
node 使用 async 控制并发的方法
2018/05/07 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
[03:28]2014DOTA2国际邀请赛 走近EG战队天才中单Arteezy
2014/07/12 DOTA
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
python list元素为tuple时的排序方法
2018/04/18 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
2018/10/15 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
python石头剪刀布小游戏(三局两胜制)
2021/01/20 Python
python实现远程控制电脑
2019/05/23 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
2020/02/13 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
Python如何使用OS模块调用cmd
2020/02/27 Python
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
Ibatis的核心配置文件都有什么
2014/09/08 面试题
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
拖鞋店创业计划书
2014/01/15 职场文书
蜜蜂引路教学反思
2014/02/04 职场文书
大学优秀班主任事迹材料
2014/05/02 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
2016七一建党节慰问信
2015/11/30 职场文书