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插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 jQuery
jquery中$.fn和图片滚动效果实现的必备知识总结
Apr 21 jQuery
jQuery实现的简单在线计算器功能
May 11 jQuery
jQuery Position方法使用和兼容性
Aug 23 jQuery
jQuery实现的form转json经典示例
Oct 10 jQuery
jQuery实现鼠标响应式淘宝动画效果示例
Feb 13 jQuery
AJAX在JQuery中的应用详解
Jan 30 jQuery
jquery实现动态创建form并提交的方法示例
May 27 jQuery
jQuery操作cookie的示例代码
Jun 05 jQuery
jQuery创建折叠式菜单
Jun 15 jQuery
jQuery实现异步上传一个或多个文件
Aug 17 jQuery
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
Oct 09 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
重置版战役片段
2020/04/09 魔兽争霸
php 中的str_replace 函数总结
2007/04/27 PHP
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
Javascript非构造函数的继承
2015/04/27 Javascript
详解JavaScript对W3C DOM模版的支持情况
2015/06/16 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
2015/07/27 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
jQuery UI库中dialog对话框功能使用全解析
2016/04/23 Javascript
JavaScript程序中的流程控制语句用法总结
2016/05/23 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
使用node打造自己的命令行工具方法教程
2018/03/26 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
如何在JS文件中获取Vue组件
2020/09/16 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
2021/02/05 Javascript
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
13个最常用的Python深度学习库介绍
2017/10/28 Python
每天迁移MySQL历史数据到历史库Python脚本
2018/04/13 Python
Python中的单继承与多继承实例分析
2018/05/10 Python
Django之模型层多表操作的实现
2019/01/08 Python
对Python3 序列解包详解
2019/02/16 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
python中setuptools的作用是什么
2020/06/19 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
小学开学寄语
2014/01/19 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
长城导游词
2015/01/30 职场文书