原生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 相关文章推荐
firefox下jquery ajax返回object XMLDocument处理方法
Jan 26 Javascript
js调用iframe实现打印页面内容的方法
Mar 04 Javascript
Bootstrap的图片轮播示例代码
Aug 31 Javascript
javascript精确统计网站访问量实例代码
Dec 19 Javascript
Bootstrap自定义文件上传下载样式
May 26 Javascript
深入理解bootstrap框架之入门准备
Oct 09 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
Jun 22 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
Apr 01 Javascript
jQuery实现动态加载select下拉列表项功能示例
May 31 jQuery
小程序自定义单页面、全局导航栏的实现代码
Mar 15 Javascript
利用Node.js如何实现文件循环覆写
Apr 05 Javascript
vue实现标签云效果的方法详解
Aug 28 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
利用discuz自带通行证整合dedecms的方法以及文件下载
2007/03/06 PHP
一家之言的经验之谈php+mysql扎实个人基本功
2008/03/27 PHP
php 获取mysql数据库信息代码
2009/03/12 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
PHP获取MySql新增记录ID值的3种方法
2014/06/24 PHP
php header函数的常用http头设置
2015/06/25 PHP
php正则表达式获取内容所有链接
2015/07/24 PHP
发现的以前不知道的函数
2006/09/19 Javascript
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
js replace 与replaceall实例用法详解
2013/08/03 Javascript
Extjs中RowExpander控件的默认展开问题示例探讨
2014/01/24 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
jQuery新的事件绑定机制on()示例应用
2014/07/18 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
jQuery多个版本和其他js库冲突的解决方法
2016/08/11 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
如何快速上手Vuex
2017/02/14 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
2018/01/18 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
解决python中的幂函数、指数函数问题
2019/11/25 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
HTML5 Canvas概述
2009/08/26 HTML / CSS
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
如何提高JDBC的性能
2013/04/30 面试题
门卫岗位职责
2013/11/15 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
运动会拉拉队口号
2014/06/09 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
干部年终考核评语
2015/01/04 职场文书
自我推荐信格式模板
2015/03/24 职场文书
2019新员工试用期转正工作总结范文
2019/08/21 职场文书
详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性
2021/05/25 HTML / CSS