页面元素之进度条

1、使用

  • 默认样式

(1). 首先要进行模块加载

<script type="text/javascript">
          layui.use(['element'],function(){
              var form =layui.form;
              var element = layui.element;
          })
</script>

(2). 对一个div添加class="layui-progress",然后再内部再添加一个class="layui-progress-bar"的div即可。
lay-percent="10%":代表进度条的初始百分比。

  • 代码:

<div class="layui-progress">
    <div class="layui-progress-bar" lay-percent="10%"></div>
</div>

2、其他属性

默认样式过于简单,我们可以对进度条进行调整颜色、尺寸、显示进度比例等操作。

  • 显示进度条比例

通过对父级元素设置属性 lay-showPercent="yes"来开启进度比的文本显示,支持:普通数字、百分数、分数。
注意:默认情况下不会显示百分比文本,如果你想开启,对属性lay-showPercent设置任意值即可,如:yes、true等等。但如果不想显示,千万别设置no或者false,直接剔除该属性即可。

<div class="layui-progress" lay-showPercent="true">
    <div class="layui-progress-bar layui-bg-red" lay-percent="1/3"></div>
</div>
  • 更改颜色

对进度条添加class=" layui-bg-red"即可。

<div class="layui-progress" lay-showPercent="true">
     <div class="layui-progress-bar layui-bg-red" lay-percent="50%"></div>
</div>
  • 大号进度条

通过对父级元素追加layui-progress-big类即可。

<div class="layui-progress layui-progress-big" lay-showPercent="true">
   <div class="layui-progress-bar" lay-percent="80%"></div>
</div>
  • 代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="js/jquery.min.js" ></script>
        <script type="text/javascript" src="layui/layui.js" ></script>
        <link rel="stylesheet" href="layui/css/layui.css" />
        <script type="text/javascript">
            layui.use(['element'],function(){
                var form =layui.form;
                var element = layui.element;
            })
        </script>
    </head>
    <body>
        <h1 style="margin: 20px 50px; text-align: center;">默认进度条</h1>
        <div class="layui-progress">
          <div class="layui-progress-bar" lay-percent="10%"></div>
        </div>
        <h1 style="margin: 20px 50px; text-align: center;">显示比例 黑色 分数</h1>
        <div class="layui-progress" lay-showPercent="true">
          <div class="layui-progress-bar layui-bg-black" lay-percent="1/3"></div>
        </div>
        <h1 style="margin: 20px 50px; text-align: center;">显示比例 红色 百分数</h1>      
        <div class="layui-progress" lay-showPercent="yes">
          <div class="layui-progress-bar layui-bg-red" lay-percent="30%"></div>
        </div>
        <h1 style="margin: 20px 50px; text-align: center;">显示比例 绿色 整数 大个的</h1>
        <div class="layui-progress layui-progress-big" lay-showPercent="yes">
          <div class="layui-progress-bar layui-bg-green" lay-percent="500"></div>
        </div>
        <h1 style="margin: 20px 50px; text-align: center;">不显示比例 绿色 百分数 大个的</h1>
        <div class="layui-progress layui-progress-big" >
          <div class="layui-progress-bar layui-bg-green" lay-percent="50%"></div>
        </div>
        <h1 style="margin: 20px 50px; text-align: center;">不显示比例 草绿色 百分数 大个的</h1>
        <div class="layui-progress layui-progress-big">
            <div class="layui-progress-bar" lay-percent="20%"></div>
        </div><br />
        <h1 style="margin: 20px 50px; text-align: center;">显示比例 橙色色 百分数 大个的</h1> 
        <div class="layui-progress layui-progress-big"lay-showPercent="true">
          <div class="layui-progress-bar layui-bg-orange" lay-percent="50%"></div>
        </div><br />
        <h1 style="margin: 20px 50px; text-align: center;">显示比例 蓝色 分数 大个的</h1> 
        <div class="layui-progress layui-progress-big" lay-showPercent="true">
          <div class="layui-progress-bar layui-bg-blue" lay-percent="3/5"></div>
        </div>
    </body>
</html>
  • 测试结果:

image.png

3、加点好玩的(动态操作)

进度条不光可以静态加载,也可以动态操作,本例中,添加了四个按钮,对其添加了click()事件,通过点击不同的按钮来实现不同的效果。本例选择元素时用到了jQuery,请加载layui.js、layui.css时一并加载。

  • attr('属性名'):获得属性值
  • element.progress('demo',a+10+'%'):官方提供的修改进度值的方法(进度条元素div需要lay-filter="demo"属性否则无效)。
    *$('#p1').attr('lay-percent',a+10+'%'):使用过element.progress()方法后一定要将lay-percent属性一并修改,否则进度条会增加,但是显示的值不会变动。
  • var setIn = setInterval(function(){}, time(毫秒)):这个函数是每间隔一段time长的时间便会执行function(){}方法(本例中每隔一秒时间便增加进度值,来模仿登录效果)。
  • clearInterval(setIn):停止运行setInterval方法。
  • var num = Math.random();:返回介于 0.0 ~ 1.0 之间的一个随机数。以此来模仿登录时无规律增加进度条。
  • num=Math.floor(num*10):将产生的小数变成1~10的整数。
  • layer.msg('魔盒终于打开了,但是啥也没有!嘿嘿!', {icon: 6});:产生一个提示框。

代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="js/jquery.min.js" ></script>
        <script type="text/javascript" src="layui/layui.js" ></script>
        <link rel="stylesheet" href="layui/css/layui.css" />
        <script type="text/javascript">
            layui.use(['layer','element'],function(){
                var layer =layui.layer;
                var element = layui.element;
                $(function(){
                    var setIn;
                    $('#btn_jia').click(function(){
                            var a=parseInt($('#p1').attr('lay-percent'));
                            if (a+10<100) {
                                element.progress('demo',a+10+'%');
                                $('#p1').attr('lay-percent',a+10+'%')
                            } else{
                                element.progress('demo','100%');
                                $('#p1').attr('lay-percent','100%')
                            }
                    })
                    $('#btn_jian').click(function(){
                            var a=parseInt($('#p1').attr('lay-percent'));
                            if (a-10>0) {
                                element.progress('demo',a-10+'%');
                                $('#p1').attr('lay-percent',a-10+'%')
                            } else{
                                element.progress('demo','0%');
                                $('#p1').attr('lay-percent','0%')
                            }
                    })
                    $('#btn_login').click(function(){
                            setIn = setInterval(function(){
                            var a=parseInt($('#p1').attr('lay-percent'));
                            var num = Math.random();
                            num=Math.floor(num*10)
                            if(a+num<100){
                                element.progress('demo',a+num +'%');
                                $('#p1').attr('lay-percent',a+num+'%')
                            }else{
                                element.progress('demo','100%');
                                $('#p1').attr('lay-percent','100%');
                                layer.msg('魔盒终于打开了,但是啥也没有!嘿嘿!', {icon: 6});
                                clearInterval(setIn);
                            }
                            return;
                        }, 1000);
                    })
                    $('#btn_stop').click(function(){
                        clearInterval(setIn)
                    })
                })
            })
        </script>
    </head>
    <body>
        <h1 style="text-align:center;margin-top: 100px;">生活本无趣,但别丢了有趣的心鸭!</h1>
        <br />
        <br />
        <div class="layui-progress layui-progress-big" lay-showPercent="yes" lay-filter="demo">
          <div class="layui-progress-bar" id="p1" lay-percent="0%"></div>
        </div>
        <br />
        <br />
        <div style="text-align:center">
            <button class="layui-btn"id="btn_jia">涨点工资</button>
            <button class="layui-btn"id="btn_jian">少点烦恼</button>
            <button class="layui-btn"id="btn_login">开启魔盒</button>
            <button class="layui-btn"id="btn_stop">休息一下</button>
        </div>
    </body>
</html>

测试效果:

  • 点击涨点工资按键:进度值增加10%
  • 点击少点烦恼按键:进度值减少10%
  • 点击开启魔盒按键:进度值每隔一秒随机增加1~10%的进度值。
  • 点击休息一下按键:进度值不在随机增加(类似于暂停)。


    没开启的魔盒.png

    开启中的魔盒.png

    s
    开启成功魔盒.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容