原生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 相关文章推荐
JS字符串处理实例代码
Aug 05 Javascript
常规表格多表头查询示例
Feb 21 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
Oct 20 Javascript
javascript获取网页宽高方法汇总
Jul 19 Javascript
JS实现消息来时让网页标题闪动效果的方法
Apr 20 Javascript
三种带箭头提示框总结实例
Jun 14 Javascript
js实现图片懒加载效果
Jul 17 Javascript
vue2里面ref的具体使用方法
Oct 27 Javascript
深入浅出了解Node.js Streams
May 27 Javascript
React Hooks 实现和由来以及解决的问题详解
Jan 17 Javascript
微信小程序实现多图上传
Jun 19 Javascript
如何在VUE中使用vue-awesome-swiper
Jan 04 Vue.js
原生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程序员的技术瓶颈分析
2011/07/17 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
js replace正则表达式应用案例讲解
2013/01/17 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
JS函数的定义与调用方法推荐
2016/05/12 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
NodeJs读取JSON文件格式化时的注意事项
2016/09/25 NodeJs
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
2017/05/08 jQuery
elementui的默认样式修改方法
2018/02/23 Javascript
js prototype和__proto__的关系是什么
2019/08/23 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
微信小程序文章列表功能完整实例
2020/06/03 Javascript
python分析nignx访问日志脚本分享
2015/02/26 Python
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
Oroton中国官网:澳洲知名奢侈配饰品牌
2017/03/26 全球购物
捷克时尚网上商店:OTTO
2018/03/15 全球购物
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
介绍一下Java中的Class类
2015/04/10 面试题
专科毕业生就业推荐信
2013/11/01 职场文书
项目采购员岗位职责
2014/04/15 职场文书
四年级评语大全
2014/04/21 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
财务部会计岗位职责
2015/02/03 职场文书
裁员通知
2015/04/25 职场文书
勤俭节约主题班会
2015/08/13 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
整理Python中常用的conda命令操作
2021/06/15 Python
Python与C++中梯度方向直方图的实现
2022/03/17 Python
MySQL学习之基础命令实操总结
2022/03/19 MySQL