jQuery实现可拖动进度条实例代码


Posted in jQuery onJune 21, 2017

html

 <div class="progress">
   <div class="progress_bg">
    <div class="progress_bar"></div>
   </div>
   <div class="progress_btn"></div>
   <div class="text">0%</div>
  </div>

css

  .progress{position: relative; width:300px;margin:100px auto;}
  .progress_bg{height: 10px; border: 1px solid #ddd; border-radius: 5px; overflow: hidden;background-color:#f2f2f2;}
  .progress_bar{background: #5FB878; width: 0; height: 10px; border-radius: 5px;}
  .progress_btn{width: 20px; height: 20px; border-radius: 5px; position: absolute;background:#fff; 
  left: 0px; margin-left: -10px; top:-5px; cursor: pointer;border:1px #ddd solid;box-sizing:border-box;}
  .progress_btn:hover{border-color:#F7B824;}

js 

$(function(){
    var tag = false,ox = 0,left = 0,bgleft = 0;
    $('.progress_btn').mousedown(function(e) {
     ox = e.pageX - left;
     tag = true;
    });
    $(document).mouseup(function() {
     tag = false;
    });
    $('.progress').mousemove(function(e) {//鼠标移动
     if (tag) {
      left = e.pageX - ox;
      if (left <= 0) {
       left = 0;
      }else if (left > 300) {
       left = 300;
      }
      $('.progress_btn').css('left', left);
      $('.progress_bar').width(left);
      $('.text').html(parseInt((left/300)*100) + '%');
     }
    });
    $('.progress_bg').click(function(e) {//鼠标点击
     if (!tag) {
      bgleft = $('.progress_bg').offset().left;
      left = e.pageX - bgleft;
      if (left <= 0) {
       left = 0;
      }else if (left > 300) {
       left = 300;
      }
      $('.progress_btn').css('left', left);
      $('.progress_bar').animate({width:left},300);
      $('.text').html(parseInt((left/300)*100) + '%');
     }
    });
   });

效果图

jQuery实现可拖动进度条实例代码

实现原理

首先是用mousedown()鼠标按下事件保存一个状态值,mouseup()鼠标抬起事件取消该状态,再同时配合mousemove()鼠标移动事件,实现按住拖动的效果。

在鼠标移动的同时去改变精度条的长度和按钮的相对左部的距离。

然后就是距离的计算,主要利用的就是pageX() 属性。pageX是鼠标指针相对于文档的左边缘的位置。在鼠标按下是就记录相对位置,在鼠标移动后就可求出鼠标移动的距离。从而改变按钮位置和进度条长度。

以上所述是小编给大家介绍的jQuery实现可拖动进度条demo,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
jQuery ajax请求struts action实现异步刷新
Apr 19 jQuery
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 jQuery
jQuery实现可兼容IE6的滚动监听功能
Sep 20 jQuery
jquery ajax异步提交表单数据的方法
Oct 27 jQuery
jQuery实现切换隐藏与显示同时切换图标功能
Oct 29 jQuery
jQuery UI实现动画效果代码分享
Aug 19 jQuery
jquery.pagination.js分页使用教程
Oct 23 jQuery
JQuery的加载和选择器用法简单示例
May 13 jQuery
通过jQuery学习js类型判断的技巧
May 27 jQuery
JQuery中DOM节点的操作与访问方法实例分析
Dec 23 jQuery
jQuery实现移动端下拉展现新的内容回弹动画
Jun 24 jQuery
jquery实现抽奖功能
Oct 22 jQuery
基于jquery日历价格、库存等设置插件
Jul 05 #jQuery
jquery.validate表单验证插件使用详解
Jun 21 #jQuery
jquery基于layui实现二级联动下拉选择(省份城市选择)
Jun 20 #jQuery
jquery加载单文件vue组件的方法
Jun 20 #jQuery
jQuery 实现双击编辑表格功能
Jun 19 #jQuery
jQuery实现简单的手风琴效果
Apr 17 #jQuery
jQuery自定义多选下拉框效果
Jun 19 #jQuery
You might like
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
javascript some()函数用法详解
2014/11/13 PHP
详解PHP中的Traits
2015/07/29 PHP
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
使用Plupload实现直接上传附件至七牛云存储
2014/12/26 Javascript
再谈JavaScript异步编程
2016/01/27 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
javascript中apply/call和bind的使用
2017/02/15 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
bootstrap select插件封装成Vue2.0组件
2017/04/17 Javascript
深入理解node.js之path模块
2017/05/03 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
2018/09/19 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
使用layui的layer组件做弹出层的例子
2019/09/27 Javascript
js回调函数仿360开机
2019/12/26 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
python读取csv文件示例(python操作csv)
2014/03/11 Python
pycharm 使用心得(四)显示行号
2014/06/05 Python
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
Python读取图片EXIF信息类库介绍和使用实例
2014/07/10 Python
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
Python使用进程Process模块管理资源
2020/03/05 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
HTML利用九宫格原理进行网页布局
2020/03/13 HTML / CSS
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
如何执行一个shell程序
2012/11/23 面试题
学雷锋志愿者活动总结
2014/06/27 职场文书
2014年干部培训工作总结
2014/12/17 职场文书
出纳工作检讨书范文
2014/12/27 职场文书
CSS3 实现的图片悬停的切换按钮
2021/04/13 HTML / CSS