AngularJS实现进度条功能示例


Posted in Javascript onJuly 05, 2017

本文实例讲述了AngularJS实现进度条功能的方法。分享给大家供大家参考,具体如下:

一、功能描述:

① 通过select标签,可以为进度条选择不同的样式(颜色)

② 进度条的进度通过文本框里面的值改变(也可以快捷的选择几个特定的值)

③ 通过checkbox按钮,控制进度条上的文字是否显示

二、代码实现:

<!DOCTYPE html>
<html lang="en" ng-app='app'>
<head>
  <meta charset="UTF-8">
  <title>进度条</title>
  <script src='../js/angular.min.js'></script>
  <style>
    .progress{
      width:400px;
      border:1px solid #ccc;
      height: 28px;
      text-align: center;
      line-height: 28px;
      font-weight: bold;
      color: #fff;
      overflow: hidden;
    }
    .Bar{
      width:50%;
      height: 28px;
      background: #5BC0DE;
    }
    .blue{
      background: #5BC0DE;
    }
    .red{
      background: #D9534F;
    }
    .green{
      background: green;
    }
  </style>
</head>
<body ng-controller='progresscontro'>
  <div class="progress">
    <div ng-class="['Bar',vm.style]" ng-style="{width:vm.progress+'%'}">
      <div ng-if='vm.text'>{{vm.progress}}%</div>
    </div>
  </div>
  </br>
  <label>
    颜色:
    <select ng-model='vm.style'>
      <option value="red">red</option>
      <option value="green">green</option>
      <option value="blue">blue</option>
    </select>
  </label>
  </br></br>
  <label>进度:
    <input type="number" ng-model='vm.progress' ng-change="vm.myFunc()">
    <button ng-click='vm.progress=0'>0%</button>
    <button ng-click='vm.progress=20'>20%</button>
    <button ng-click='vm.progress=40'>40%</button>
    <button ng-click='vm.progress=60'>60%</button>
    <button ng-click='vm.progress=80'>80%</button>
  </label>
  </br></br>
  <label>
    是否显示文字:
    <input type="checkbox" ng-model='vm.text'>
  </label>
  <script>
   var app=angular.module('app',[]);
   app.controller('progresscontro',function($scope){
      var vm=$scope.vm={};
      vm.style='blue';
      vm.progress=50;
      vm.text=true;
      vm.myFunc=function(){
        if(vm.progress>100){
          vm.progress=100;
        }
        if(vm.progress<0){
          vm.progress=0;
        }
      }
   })
  </script>
</body>
</html>

demo预览:

AngularJS实现进度条功能示例

三、知识点分析

1、ng-class

ngclass实现有以下三种方式:

(1) 字符串形式:如果表达式求值为字符串,则字符串应为一个或多个空格分隔的类名。

<div ng-class="'red'"></div>

说明:字符串形式,每次只能绑定一个类名

(2) 数组形式:如果表达式求值为数组,则数组的每个元素应为一个字符串,该字符串是一个或多个空格分隔的类名。如下:

<div ng-class="['Bar',vm.style]" ng-style="{width:vm.progress+'%'}">
  <div ng-if='vm.text'>{{vm.progress}}%</div>
</div>

说明:数组中可以存放一个变量,但是字符串形式只能存放常量

(3) 对象:如果表达式计算为对象,则对于具有真值的对象的每个键值对,相应的键用作类名。

<div ng-class {'selected': isSelected, 'car': isCar}">

说明:当 isSelected = true 则增加selected class,当isCar=true,则增加car class,

2、ng-style

ng-style的属性值是一个对象,对象里的内容是以key->value的形式展现,key是属性,value是值,如下:

<div ng-class="['Bar',vm.style]" ng-style="{width:vm.progress+'%'}">
  <div ng-if='vm.text'>{{vm.progress}}%</div>
</div>

3、ng-if

ng-if 指令用于在表达式为 false 时,移除指定html元素,当表达式为true时,则添加移除的html元素,并显示,如下:

<div ng-if='vm.text'>{{vm.progress}}%</div>

说明:当vm.text为真时显示视图里面的内容,否则移除

4、ng-model

ng-model 指令绑定了 HTML 表单元素到 scope 变量中,如下:

<select ng-model='vm.style'>
  <option value="red">red</option>
  <option value="green">green</option>
  <option value="blue">blue</option>
</select>

说明:在select标签中,ng-model的值为所选择的option的value值

<input type="checkbox" ng-model='vm.text'>

说明:在checkbox中,ng-model的值为true或者false

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
Javascript 面向对象 重载
May 13 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
Jun 08 Javascript
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
Aug 13 Javascript
封装了一个支持匿名函数的Javascript事件监听器
Jun 05 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
Sep 26 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
Mar 04 Javascript
11种ASP连接数据库的方法
Sep 18 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
Jun 15 Javascript
js select下拉联动 更具级联性!
Apr 17 Javascript
Js apply方法详解
Feb 16 Javascript
详解JavaScript事件循环机制
Sep 07 Javascript
JavaScript Array对象基本方法详解
Sep 03 Javascript
AngularJS实现tab选项卡的方法详解
Jul 05 #Javascript
angularjs2中父子组件的数据传递的实例代码
Jul 05 #Javascript
jQuery制作input提示内容(兼容IE8以上)
Jul 05 #jQuery
jQuery常见面试题之DOM操作详析
Jul 05 #jQuery
详解基于angular-cli配置代理解决跨域请求问题
Jul 05 #Javascript
微信小程序学习之数据处理详解
Jul 05 #Javascript
用node和express连接mysql实现登录注册的实现代码
Jul 05 #Javascript
You might like
用PHP解决的一个栈的面试题
2014/07/02 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
2014/07/04 PHP
详解PHP导入导出CSV文件
2014/11/03 PHP
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
微信小程序 动画的简单实例
2017/10/12 Javascript
微信、QQ、微博、Safari中使用js唤起App
2018/01/24 Javascript
通过js动态创建标签,并设置属性方法
2018/02/24 Javascript
JavaScript折半查找(二分查找)算法原理与实现方法示例
2018/08/06 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
JavaScript对象拷贝与赋值操作实例分析
2018/12/10 Javascript
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
小程序根据手机机型设置自定义底部导航距离
2019/06/04 Javascript
Vue3 中的数据侦测的实现
2019/10/09 Javascript
JavaScript监听键盘事件代码实现
2020/06/03 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
Python列表(list)常用操作方法小结
2015/02/02 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
Python subprocess模块常见用法分析
2018/06/12 Python
毕业生就业自荐书
2013/12/15 职场文书
两只小狮子教学反思
2014/02/05 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
供货协议书范本
2014/04/22 职场文书
老公给老婆的保证书
2014/04/28 职场文书
我的小天地教学反思
2014/04/30 职场文书
投标诚信承诺书
2014/05/26 职场文书
历史学专业求职信
2014/06/19 职场文书
施工安全责任书范本
2014/07/24 职场文书
大学生创业计划书
2014/08/14 职场文书
2014年党建工作总结
2014/11/11 职场文书
2014大学生学生会工作总结
2014/12/19 职场文书
公司仓库管理制度
2015/08/04 职场文书