原生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使用cookie
Feb 02 Javascript
Jquery 基础学习笔记
May 29 Javascript
jQuery学习笔记 更改jQuery对象
Sep 19 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
May 07 Javascript
js的toUpperCase方法用法实例
Jan 27 Javascript
JavaScript实现自动切换图片代码
Oct 11 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
Dec 13 Javascript
常用jQuery选择器汇总
Feb 02 Javascript
五步轻松实现JavaScript HTML时钟效果
Mar 25 Javascript
vue动画打包后失效问题的解决方法
Sep 18 Javascript
详解如何快速配置webpack多入口脚手架
Dec 28 Javascript
使用layer弹窗,制作编辑User信息页面的方法
Sep 27 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代码保护--Zend Guard的使用详解
2013/06/03 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
$.ajax json数据传递方法
2008/11/19 Javascript
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
JavaScript 基础篇之运算符、语句(二)
2012/04/07 Javascript
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
从js向Action传中文参数出现乱码问题的解决方法
2013/12/29 Javascript
jQuery 删除/替换DOM元素的几种方式
2014/05/20 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
jquery点击改变class并toggle的实现代码
2016/05/15 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
JavaScript实战(原生range和自定义特效)简单实例
2016/08/21 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
Node.js 基础教程之全局对象
2017/08/06 Javascript
手把手教你写一个微信小程序(推荐)
2018/10/17 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
python中尾递归用法实例详解
2015/04/28 Python
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
python+selenium实现163邮箱自动登陆的方法
2017/12/31 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
详解移动端Html5页面中1px边框的几种解决方法
2018/07/24 HTML / CSS
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
上班打牌检讨书
2014/02/07 职场文书
期中考试反思800字
2014/05/01 职场文书
电子商务专业应届毕业生求职信
2014/06/21 职场文书
上课睡觉万能检讨书
2015/02/17 职场文书
关于迟到的检讨书
2015/05/06 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
详解Javascript实践中的命令模式
2021/05/05 Javascript