原生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 相关文章推荐
Javascript调试工具(下载)
Jan 09 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
Jan 10 Javascript
兼容主流浏览器的iframe自适应高度js脚本
Jan 10 Javascript
jQuery焦点图插件SaySlide
Dec 21 Javascript
JavaScript基于原型链的继承
Jun 22 Javascript
AngularJS 中文API参考手册
Jul 28 Javascript
常用Javascript函数与原型功能收藏(必看篇)
Oct 09 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
Dec 14 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
Dec 28 Javascript
基于JavaScript实现的顺序查找算法示例
Apr 14 Javascript
jquery中done和then的区别(详解)
Dec 19 jQuery
详解element-ui表格中勾选checkbox,高亮当前行
Sep 02 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和.net中des加解密的实现方法
2013/02/27 PHP
php实现单链表的实例代码
2013/03/22 PHP
hadoop常见错误以及处理方法详解
2013/06/19 PHP
php打开文件fopen函数的使用说明
2013/07/05 PHP
浅谈PHP中new self()和new static()的区别
2017/08/11 PHP
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
JS常用字符串方法(推荐)
2021/01/15 Javascript
怎样判断jQuery当前元素是隐藏还是显示
2016/11/23 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
js实现延迟加载的几种方法详解
2019/01/19 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
layer页面跳转,获取html子节点元素的值方法
2019/09/27 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
2020/03/29 Javascript
vue-drag-chart 拖动/缩放图表组件的实例代码
2020/04/10 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
python操作mysql数据库
2017/03/05 Python
python实现员工管理系统
2018/01/11 Python
python抓取网站的图片并下载到本地的方法
2018/05/22 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
python绘制汉诺塔
2021/03/01 Python
浅析CSS3 中的 transition,transform,translate之间区别和作用
2020/03/26 HTML / CSS
详解如何解决canvas图片getImageData,toDataURL跨域问题
2018/09/17 HTML / CSS
巴西体育用品商店:Lojão dos Esportes
2018/07/21 全球购物
下面这个程序执行后会有什么错误或者效果
2014/11/03 面试题
物资采购方案
2014/06/12 职场文书
2014年老干部工作总结
2014/11/21 职场文书
申报优秀教师材料
2014/12/16 职场文书
永远是春天观后感
2015/06/12 职场文书
就业证明函
2015/06/17 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers