用原生JS怎么写简单的加载进度条效果
Admin 2022-06-24 群英技术资讯 1399 次浏览
今天就跟大家聊聊有关“用原生JS怎么写简单的加载进度条效果”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“用原生JS怎么写简单的加载进度条效果”文章能对大家有帮助。本文分享一个原生JS实现的动态加载进度条特效,效果如下:

实现的代码如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>原生JS实现加载进度条</title>
<style>
#progressBox {
width: 300px;
height: 40px;
border: 1px solid #C8C8C8;
background: white;
position: relative;
margin: 0 auto;
margin-top: 100px;
}
#progressBar {
position: absolute;
left: 0;
top: 0;
z-index: 2;
height: 40px;
width: 100%;
line-height: 40px;
color: white;
text-align: center;
font-size: 20px;
font-weight: bold;
font-family: Georgia;
clip: rect(0px, 0, 40px, 0px);
background: #00A1F5;
}
#progressText {
position: absolute;
left: 0;
top: 0;
z-index: 1;
width: 100%;
height: 40px;
line-height: 40px;
color: black;
text-align: center;
font-size: 20px;
font-weight: bold;
font-family: Georgia;
}
</style>
<script>
window.onload = function () {
// 设定当前起始状态值,
// 真实情况中用html5的onprogress和onload来完成
// 还可以跟后台配合,通过ajax实时的返回数据
var iNow = 0;
// 设定定时器
var timer = setInterval(function () {
// 如果当前的值为100
if (iNow == 100) {
// 清除定时器
clearInterval(timer);
}else {
// 将当前状态值累加1
iNow += 1;
// 调用执行状态的函数,传入状态值
progressFn(iNow);
}
}, 30);
function progressFn(cent) {
// 获取最外层的div
var oDiv1 = document.getElementById('progressBox');
// 获取内层进度条的div
var oDiv2 = document.getElementById('progressBar');
// 获取内层文字发生变化时的div
var oDiv3 = document.getElementById('progressText');
// 获取总进度条的宽度
var allWidth = parseInt(getStyle(oDiv1, 'width'));
// 设定内层两个div的文字内容一样
oDiv2.innerHTML = cent + '%';
oDiv3.innerHTML = cent + '%';
// 修改clip的的宽度值
oDiv2.style.clip = 'rect(0px, ' + cent / 100 * allWidth + 'px, 40px, 0px)';
// 获取当前元素的属性值
function getStyle(obj, attr) {
// 兼容IE
if (obj.currentStyle) {
return obj.currentStyle[attr];
}else {
// 第二个参数为false是通用的写法,目的是为了兼容老版本
return getComputedStyle(obj, false)[attr];
}
}
}
};
</script>
</head>
<body>
<div id="progressBox">
<div id="progressBar">0%</div>
<!-- 设定第二个层以便当进度超过文字的时候,修改文字的颜色 -->
<div id="progressText">0%</div>
</div>
</body>
</html>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
jquery中slow的意思是“缓慢的”,slow属性值用于控制jquery动画效果的动画速度,当参数值设置了“slow”时,元素的动画过程中会缓慢的改变元素的属性,语法为“元素对象.元素动画方法("slow")”。
Vue插槽,是学习vue中必不可少的一节,越来越发现插槽的好用,而过滤数据也是我们日常开发中必然会用到的,这篇文章主要给大家介绍了关于Vue插槽和过滤器的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
最近学习过程中常碰到让用户登录注册这种,这篇文章主要给大家介绍了关于Vue实战记录之登陆页面实现的相关资料,需要的朋友可以参考下
这篇文章主要为大家介绍了vue element树形控件实现树形表格,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
首先我们来看一道题目,如下javascript代码,执行后会在控制台打印出什么内容?async function async1() { console.log(async1 start); await async2(); console.log(async1 end); } async function a
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008