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实现省市区三级联动 (封装和不封装两种方式)
May 15 jQuery
深入理解jquery的$.extend()、$.fn和$.fn.extend()
Jul 08 jQuery
JQuery判断正整数整理小结
Aug 21 jQuery
jQuery实现所有验证通过方可提交的表单验证
Nov 21 jQuery
jquery动态添加以及遍历option并获取特定样式名称的option方法
Jan 29 jQuery
jQuery中将json数据显示到页面表格的方法
May 27 jQuery
jQuery实现动态加载select下拉列表项功能示例
May 31 jQuery
jQuery使用each遍历循环的方法
Sep 19 jQuery
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
Dec 06 jQuery
jquery添加div实现消息聊天框
Feb 08 jQuery
jquery实现两个div中的元素相互拖动的方法分析
Apr 05 jQuery
原生jQuery实现只显示年份下拉框
Dec 24 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时间戳使用实例代码
2008/06/07 PHP
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
jQuery插件zTree实现删除树节点的方法示例
2017/03/08 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
2017/08/24 Javascript
layui弹出层按钮提交iframe表单的方法
2018/08/20 Javascript
three.js搭建室内场景教程
2018/12/30 Javascript
微信小程序实现一张或多张图片上传(云开发)
2019/09/25 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
javascript解析json格式的数据方法详解
2020/08/07 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
[03:39]这就是刀塔,我们是冠军!燃情短片讲述我们的DOTA故事
2019/07/02 DOTA
python进阶教程之循环相关函数range、enumerate、zip
2014/08/30 Python
Python lambda函数基本用法实例分析
2018/03/16 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
python多线程并发让两个LED同时亮的方法
2019/02/18 Python
如何验证python安装成功
2020/07/06 Python
django跳转页面传参的实现
2020/09/17 Python
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
自荐信怎么写呢?
2013/12/09 职场文书
军校本科大学生自我评价
2014/01/14 职场文书
关爱留守儿童倡议书
2014/04/15 职场文书
护士求职信
2014/07/05 职场文书
迎七一演讲稿
2014/09/12 职场文书
教学改革问题查摆整改措施
2014/09/27 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
个人贷款授权委托书样本
2014/10/07 职场文书
工程质量保证书
2015/05/09 职场文书
jquery插件实现悬浮的菜单
2021/04/24 jQuery