学写一个糊弄人的进度条(layui+js)
JS 一个 进度条 layui
2023-09-27 14:19:45 时间
学写一个糊弄人的进度条
一、效果展示:
众所周知,进度条是一种烦人的东西╭(╯^╰)╮
它用于实时显示处理任务的速度,完成度,剩余未完成任务量的大小,和可能需要处理时间。下面来一起写一个进度条叭。
二、layui配置
首先在官网下载layui
将html文件如下图创建好
在html文件头中链接到layui
<head>
<!--在html文件头中链接到layui-->
<link rel="stylesheet" href="./layui/css/layui.css">
</head>
引入layui.js
<!--引入layui.js-->
<script src="./layui/layui.js"></script>
三、完整源码及超详细注释
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="./layui/css/layui.css">
</head>
<body>
<!--动态进度条-->
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 50px;">
<legend>正在加载,请稍后...</legend>
</fieldset>
<div class="layui-progress layui-progress-big" lay-showpercent="true" lay-filter="demo">
<div class="layui-progress-bar layui-bg-red" lay-percent="0%"></div>
</div>
<div class="site-demo-button" style="margin-top: 20px; margin-bottom: 0;">
<button class="layui-btn site-demo-active" data-type="loading">模拟loading</button>
</div>
</div>
<!--引入layui.js-->
<script src="./layui/layui.js"></script>
<!--layui配置-->
<script>
//注意进度条依赖 element 模块,否则无法进行正常渲染和功能性操作
layui.use('element', function () {
var $ = layui.jquery; //获取js
var element = layui.element; //获取layui
//active事件
var active = {
loading: function (othis) {//当loading按钮被点击后
var DISABLED = 'layui-btn-disabled';//layui-btn-disabled表示禁止点击的按钮
othis.addClass(DISABLED);//将按钮设置为禁止点击状态
//模拟loading
var n = 0,//n表示进度百分百,取0到100
timer = setInterval(function () {//设置一个定时器
n = n + Math.random() * 10 | 0;//Math.random() * 10 | 0表示随机选取一个0到10的整数
if (n > 100) {//当n大于100时,将n设置为100,结束定时器,并恢复按钮,
n = 100;
clearInterval(timer);
othis.removeClass(DISABLED);//去掉禁止点击的限制
}
element.progress('demo', n + '%');//每次n增加后,改变进度条,element.progress可以改变进度条的值
}, 300 + Math.random() * 1000);//表示本定时器是每隔300~1300ms之间执行一次function
}
};
$('.site-demo-active').on('click', function () {//抓取到模拟loading按钮,绑定click点击事件
var othis = $(this),
type = $(this).data('type');
active[type] ? active[type].call(this, othis) : '';//如果按钮被点击,则触发active
});
});
</script>
</body>
</html>
四、免费完整源码工程下载
相关文章
- 如何用5000行JS撸一个关系型数据库
- Exif.js 读取图像的元数据
- react request.js 函数封装
- js中获取时间new date()的用法
- JS 如何快速遍历一个集合
- 浅谈JS DDoS攻击原理与防御
- JS Foo.getName笔试题解析,杂谈静态属性与实例属性,变量提升,this指向,new一个函数的过程
- js中的NaN,isNaN与Number.isNaN的区别,如何判断一个值严格等于NaN
- js中几种实用的跨域方法原理详解
- js 日期比较大小,js判断日期是否在区间内,js判断时间段是否在另外一个时间段内
- 如何使用JS实现一个录屏功能
- 从一个QQ群友那儿偷来的js图形 ^_^
- JS 中如何优雅的使用多层嵌套属性而不会发生报错
- Jsp页面中判断字符串是否包含另一个字符串的两种方法,js判断包含的indexOf()方法
- 有趣的HTML实例(八) 一个很有趣的动态背景(css+js)
- asp.net mvc razor语法 mvc中前台js中获取ViewData的值
- JS 将数字字符串数组转为 数字数组 (互换),js获取数组对象中 某一个key的值,js判断一个数组是否包含另一个数组(一维数组)
- [js插件开发教程]定制一个手风琴插件(accordion)
- [js高手之路]javascript腾讯面试题学习封装一个简易的异步队列
- js实现默认或者触发一个事件选中元素内容的方法
- npm安装vue-cli报错internal/modules/cjs/loader.js(Error: Cannot find module 'D:Programnodejsnode_globalnode_modulesvue-clibinvue')
- JS/JQuery获取当前元素的上一个/下一个兄弟级元素等元素的方法
- js 简易判断一个数字是否是小数
- JS引擎是如何工作的?从调用堆栈到Promise
- selenium技巧——通过js来控制滚动条 业务流程:
- js到字符串数组,实现阵列成一个字符串
- java结合node.js非对称加密,实现密文登录传参——让前后端分离的项目更安全
- 用js写一个小插件,解决有些浏览器不支持模态窗口的问题,并且支持嵌套
- js 判断是否为空对象、空数组
- 【转】从零开始开发一个vue组件打包并发布到npm (把vue组件打包成一个可以直接引用的js文件)