原生JavaScript实现进度条


Posted in Javascript onFebruary 19, 2021

JavaScript实现进度条的具体代码,供大家参考,具体内容如下

进度条实现介绍

使用JavaScript实现进度条功能。

原理:通过鼠标移动事件,获取鼠标移动的距离。

步骤:

(1)html 中 div 布局
(2)css 样式编写
(3)JavaScript特效编写

html代码

<body>
 <!-- 整体盒子 -->
 <div id="box">
 <!-- 进度条整体 -->
 <div id="progress">
 <!-- 进度条长度 -->
  <div id="progress_head"></div>
 <!-- 进度条移动条 -->
 <span id="span"></span>
 <div>
 <!-- 显示数据 -->
 <div id="percentage">0%</div>
 </div>
</body>

css样式

<style>
 /* 整体样式,消除默认样式 */
 body{
 margin:0;
 padding:0;
 }
 #box{
 position:relative;
 width:1000px;
 height:30px;
 margin:100px auto;
 } 
 #progress{
 position:relative;
 width:900px;
 height:30px;
 background:#999999;
 border-radius:8px;
 margin:0 auto; 
 }
 #progress_head{
 width:0px;
 height:100%;
 border-top-left-radius:8px;
 border-bottom-left-radius:8px;
 background:#9933CC;
 
 }
 span{
 position:absolute;
 width:20px;
 height:38px;
 background:#9933CC;
 top:-4px;
 left:0px;
 cursor:pointer;
 }
 #percentage{
 position:absolute;
 line-height:30px;
 text-align:center;
 right:-44px;
 top:0;
 }
 
 
</style>

JavaScript代码

<script>

 //js获取节点
 var oProgress=document.getElementById('progress');
 var oProgress_head=document.getElementById('progress_head');
 var oSpan=document.getElementById('span');
 var oPercentage=document.getElementById('percentage')

 //添加事件 鼠标按下的事件
 oSpan.onmousedown=function(event){
 
 var event=event || window.event;
 var x=event.clientX-oSpan.offsetLeft;

 document.onmousemove=function(){
 
 var event=event || window.event;
 var wX=event.clientX-x;
 
 
 if(wX<0)
 {
  wX=0;
 }else if(wX>=oProgress.offsetWidth-20)
 {
  wX=oProgress.offsetWidth - 20;
 }
 oProgress_head.style.width=wX+'px';
 oSpan.style.left=wX+'px';
 
 oPercentage.innerHTML=parseInt(wX/(oProgress.offsetWidth-20)*100)+'%';
 
 return false;
 };
 
 document.onmouseup=function(){
 
 document.onmousemove=null; 
 };
 
 }; 
</script>

效果图

原生JavaScript实现进度条

原生JavaScript实现进度条

整体代码

<!DOCTYPE>
<html lang="en">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>进度条</title>
 <style>
 /* 整体样式,消除默认样式 */
 body{
 margin:0;
 padding:0;
 }
 #box{
 position:relative;
 width:1000px;
 height:30px;
 margin:100px auto;
 } 
 #progress{
 position:relative;
 width:900px;
 height:30px;
 background:#999999;
 border-radius:8px;
 margin:0 auto; 
 }
 #progress_head{
 width:0px;
 height:100%;
 border-top-left-radius:8px;
 border-bottom-left-radius:8px;
 background:#9933CC;
 
 }
 span{
 position:absolute;
 width:20px;
 height:38px;
 background:#9933CC;
 top:-4px;
 left:0px;
 cursor:pointer;
 }
 #percentage{
 position:absolute;
 line-height:30px;
 text-align:center;
 right:-44px;
 top:0;
 }
 
 
 </style>
</head>
<body>

 <!-- 整体盒子 -->
 <div id="box">
 <!-- 进度条整体 -->
 <div id="progress">
 <!-- 进度条长度 -->
  <div id="progress_head"></div>
 <!-- 进度条移动条 -->
 <span id="span"></span>
 <div>
 <!-- 显示数据 -->
 <div id="percentage">0%</div>
 </div>

</body>
</html>
<script>

 //js获取节点
 var oProgress=document.getElementById('progress');
 var oProgress_head=document.getElementById('progress_head');
 var oSpan=document.getElementById('span');
 var oPercentage=document.getElementById('percentage')

 //添加事件 鼠标按下的事件
 oSpan.onmousedown=function(event){
 
 var event=event || window.event;
 var x=event.clientX-oSpan.offsetLeft;

 document.onmousemove=function(){
 
 var event=event || window.event;
 var wX=event.clientX-x;
 
 
 if(wX<0)
 {
  wX=0;
 }else if(wX>=oProgress.offsetWidth-20)
 {
  wX=oProgress.offsetWidth - 20;
 }
 oProgress_head.style.width=wX+'px';
 oSpan.style.left=wX+'px';
 
 oPercentage.innerHTML=parseInt(wX/(oProgress.offsetWidth-20)*100)+'%';
 
 
 return false;
 };
 
 document.onmouseup=function(){
 
 document.onmousemove=null;
 
 };
 
 };
 
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用jQuery打造TabPanel效果代码
May 22 Javascript
javascript匀速运动实现方法分析
Jan 08 Javascript
jQuery获取字符串中出现最多的数
Feb 22 Javascript
AngularJS控制器之间的通信方式详解
Nov 03 Javascript
JavaScript实现弹窗效果代码分析
Mar 09 Javascript
JavaScript中offsetWidth的bug及解决方法
May 17 Javascript
jquery与js实现全选功能的区别
Jun 11 jQuery
基于hover的用法实例(推荐)
Jul 04 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
Dec 18 Javascript
使用javascript函数编写简单银行取钱存钱流程
May 26 Javascript
vue二级菜单导航点击选中事件的方法
Sep 12 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
Sep 12 Javascript
原生JavaScript实现换肤
Feb 19 #Javascript
基于vue的video播放器的实现示例
Feb 19 #Vue.js
JavaScript Dom实现轮播图原理和实例
Feb 19 #Javascript
JavaScript使用setTimeout实现倒计时效果
Feb 19 #Javascript
react项目从新建到部署的实现示例
Feb 19 #Javascript
原生JavaScript实现幻灯片效果
Feb 19 #Javascript
JavaScript 实现继承的几种方式
Feb 19 #Javascript
You might like
php数组总结篇(一)
2008/09/30 PHP
PHP自动补全表单的两种方法
2017/03/06 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
PHP htmlentities()函数用法讲解
2019/02/25 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
Z-Blog中用到的js代码
2007/03/15 Javascript
JS 巧妙获取剪贴板数据 Excel数据的粘贴
2009/07/09 Javascript
JavaScript中的集合及效率
2010/01/08 Javascript
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
不同浏览器的怪癖小结
2010/07/11 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
js replace替换所有匹配的字符串
2014/02/13 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
2015/10/12 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
AngularJS中如何使用echart插件示例详解
2016/10/26 Javascript
基于Javascript倒计时效果
2016/12/22 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
使用webpack4编译并压缩ES6代码的方法示例
2019/04/24 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
Vue3.x源码调试的实现方法
2019/10/13 Javascript
使用Python装饰器在Django框架下去除冗余代码的教程
2015/04/16 Python
浅谈Python中列表生成式和生成器的区别
2015/08/03 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
简单了解python的break、continue、pass
2019/07/08 Python
python交互模式基础知识点学习
2020/06/18 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
Python中BeautifulSoup通过查找Id获取元素信息
2020/12/07 Python
挪威太阳镜和眼镜网上商城:SmartBuyGlasses挪威
2016/08/20 全球购物
介绍Java的内部类
2012/10/27 面试题
优质的学校老师推荐信
2013/10/28 职场文书
对公司合理化的建议书
2014/03/12 职场文书
2014年自愿离婚协议书
2014/10/10 职场文书