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 相关文章推荐
一个js封装的不错的选项卡效果代码
Feb 15 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
Feb 12 Javascript
js网页中的(运行代码)功能实现思路
Feb 04 Javascript
jquery 快速回到页首的方法
Dec 05 Javascript
解决jquery插件冲突的问题
Jan 23 Javascript
javascript实现input file上传图片预览效果
Dec 31 Javascript
详解js树形控件—zTree使用总结
Dec 28 Javascript
深入理解Vue 单向数据流的原理
Nov 09 Javascript
Vue 项目代理设置的优化
Apr 17 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
Nov 01 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
Nov 16 Javascript
React实现动效弹窗组件
Jun 21 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 简单数组排序实现代码
2009/08/05 PHP
深入理解PHP之require/include顺序 推荐
2011/01/02 PHP
php启动时候提示PHP startup的解决方法
2013/05/07 PHP
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
php设置允许大文件上传示例代码
2014/03/10 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
2015/12/31 PHP
php获取给定日期相差天数的方法分析
2017/02/20 PHP
PHP中时间加减函数strtotime用法分析
2017/04/26 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
封装好的省市地区联动控件附下载
2007/08/13 Javascript
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
基于Bootstrap重置输入框内容按钮插件
2016/05/12 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
2016/10/09 Javascript
javascript实现电脑和手机版样式切换
2017/11/10 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
axios 封装上传文件的请求方法
2018/09/26 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
React中获取数据的3种方法及优缺点
2020/02/18 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
详解Python开发中如何使用Hook技巧
2017/11/01 Python
基于Python的文件类型和字符串详解
2017/12/21 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
浅谈Python中的生成器和迭代器
2020/06/19 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
Urban Outfitters美国官网:美国生活方式品牌
2016/08/26 全球购物
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
莫斯科的韩国化妆品店:Sifo
2019/12/04 全球购物
法律专业个人实习自我鉴定
2013/09/23 职场文书
微信小程序中wxs文件的一些妙用分享
2022/02/18 Javascript
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫