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 dataTable 后台加载数据并分页实例代码
Jun 07 jQuery
jquery与js实现全选功能的区别
Jun 11 jQuery
jquery处理checkbox(复选框)是否被选中实例代码
Jun 12 jQuery
jQuery实现下拉菜单的实例代码
Jun 19 jQuery
简单实现jQuery上传图片显示预览功能
Jun 29 jQuery
深入浅析angular和vue还有jquery的区别
Aug 13 jQuery
Jquery的Ajax技术使用方法
Jan 21 jQuery
使vue实现jQuery调用的两种方法
May 12 jQuery
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
May 14 jQuery
jQuery控制input只能输入数字和两位小数的方法
May 16 jQuery
jquery validate 实现动态增加/删除验证规则操作示例
Oct 28 jQuery
jQuery实现滑动开关效果
Aug 02 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
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
PHP性能优化工具篇Benchmark类调试执行时间
2011/12/06 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
使用vue.js实现联动效果的示例代码
2017/01/10 Javascript
深入理解Node.js中的进程管理
2017/03/13 Javascript
js实现音乐播放控制条
2017/09/09 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
关于js陀螺仪的理解分析
2019/04/11 Javascript
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python实现的生成自我描述脚本分享(很有意思的程序)
2014/07/18 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
python字符串中匹配数字的正则表达式
2019/07/03 Python
解决python 文本过滤和清理问题
2019/08/28 Python
关于Python-faker的函数效果一览
2019/11/28 Python
Python实现手势识别
2020/10/21 Python
HTML5之语义标签介绍
2016/07/07 HTML / CSS
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
Nanushka官网:匈牙利服装品牌
2019/08/14 全球购物
数字天堂软件测试面试题
2012/12/23 面试题
新年主持词
2014/03/27 职场文书
土木工程求职信
2014/05/29 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
采购员工作总结范文
2015/08/12 职场文书
python中print格式化输出的问题
2021/04/16 Python
CSS中Single Div 绘图技巧的实现
2021/06/18 HTML / CSS
mysql优化之query_cache_limit参数说明
2021/07/01 MySQL