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实现动态生成表格并为行绑定单击变色动作的方法
Apr 17 jQuery
JQuery 封装 Ajax 常用方法(推荐)
May 21 jQuery
jquery处理checkbox(复选框)是否被选中实例代码
Jun 12 jQuery
简单谈谈require模块化jquery和angular的问题
Jun 23 jQuery
使用 jQuery 实现表单验证功能
Jul 05 jQuery
jQuery事件对象的属性和方法详解
Sep 09 jQuery
jQuery实现的简单动态添加、删除表格功能示例
Sep 21 jQuery
jQuery-ui插件sortable实现自由拖动排序
Dec 01 jQuery
详解jquery和vue对比
Apr 16 jQuery
Jquery属性的获取/设置及样式添加/删除操作技巧分析
Dec 23 jQuery
jquery实现轮播图特效
Apr 12 jQuery
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
Jan 29 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
php 之 没有mysql支持时的替代方案
2006/10/09 PHP
PHP中数组的三种排序方法分享
2012/05/07 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
JavaScript实用技巧(一)
2010/08/16 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
jQuery实现带延时功能的水平多级菜单效果【附demo源码下载】
2016/09/21 Javascript
Javascript中内建函数reduce的应用详解
2016/10/20 Javascript
bootstrap手风琴折叠示例代码分享
2017/05/22 Javascript
JavaScript实现为事件句柄绑定监听函数的方法分析
2017/11/14 Javascript
webpack打包js的方法
2018/03/12 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
angular使用md5,CryptoJS des加密的方法
2019/06/03 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
Python中多线程及程序锁浅析
2015/01/21 Python
python实现简单socket通信的方法
2016/04/19 Python
python使用rsa非对称加密过程解析
2019/12/28 Python
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
2020/08/07 Python
你们项目是如何进行变更控制的
2015/08/26 面试题
应届生如何写自荐信
2014/01/05 职场文书
给女儿的表扬信
2014/01/18 职场文书
高级销售求职信
2014/02/21 职场文书
《故乡》教学反思
2014/04/10 职场文书
2014年合同管理工作总结
2014/12/02 职场文书
2015年推普周活动总结
2015/03/27 职场文书
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL
警用民用对讲机找不同
2022/02/18 无线电
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android