用原生JS怎么写简单的加载进度条效果
Admin 2022-06-24 群英技术资讯 987 次浏览
今天就跟大家聊聊有关“用原生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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
JavaScript中,NaN是一个特殊的数字值(typeof NaN的结果为number),是not a number的缩写,表示不是一个合法的数字。
主要思路在需要拖拽宽度的区域设置一个div,高度设为 100%,宽度尽量窄一些(也不要太窄,3~6px左右)在此div上绑定当“鼠标按下”时,触发document绑定“鼠标移动”方法和鼠标抬起方法通过鼠标移动方法不断获取当前鼠标位置,设置需要变化大小div的宽高。鼠标抬起时取消鼠标移动方法和鼠标抬起方法的绑定。temp
jquery禁止div的方法:1、使用JQuery的off()方法禁用div;2、使用JQuery结合CSS的“pointer-events: none;”实现禁用div即可。
jQuery跨域访问的解决方法及要点是什么?跨域访问一直都是程序员们头疼的问题,对于很多用户们来说都不知道如何解决,好在,有jquery帮忙,跨域问题似乎没那么难缠了.这次也借此机会对跨域问题来给刨根问底,结合实际的开发项目,查阅了相关资料,算是解决了跨域问题..有必要记下来备忘.
本篇文章给大家带来了关于javascript的相关知识,其中详细介绍了javaScript三种引入方式行内式,嵌入样式、外部样式及其使用方式;下面一起来看一下,希望对大家有帮助。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
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