Agularjs妙用双向数据绑定实现手风琴效果


Posted in Javascript onMay 26, 2017

最近在工作总遇到需要实现类似手风琴效果的需求,如下图所示:

Agularjs妙用双向数据绑定实现手风琴效果 

因为汇总(上半部分)和明细(下面的浅色部分)在不同的情况下显示的字段数量是不一样的,而且还有编辑和展示的状态切换,所以需要自己实现手风琴效果。

初步的想法是用css的transform做动效,点击详情按钮(或中间部分的下拉图标)时请求详情数据,然后将详情部分的height设置成指定高度,再次点击详情按钮(或中间部分的下拉图标),详情部分被收起。

但是这样的问题在于我们如何精确的控制到底该显示哪一行汇总数据的明细和关闭其他行的明细,经过一番思考我决定利用一下双向数据绑定来帮我完成这个事情。具体代码如下:

js:

$scope.toogleShowDtl = function (item, e) {
       //阻止事件冒泡
       e.stopPropagation();
      for (var i = 0; i < $scope.OrderHdr.length; i++) {
        if ($scope.OrderHdr[i].Bill_Hdr_Id != item.Bill_Hdr_Id) {
          $scope.OrderHdr[i].mxShow = false;
          $scope.OrderHdr[i].iconChange = "glyphicon glyphicon-menu-down";
        }
      }
      switch (item.mxShow) {
        case undefined:
          item.mxShow = true;
          item.iconChange = "glyphicon glyphicon-menu-up";
          break;
        case true:
          item.mxShow = false;
          item.iconChange = "glyphicon glyphicon-menu-down";
          break;
        case false:
          item.mxShow = true;
          item.iconChange = "glyphicon glyphicon-menu-up";
          break;
        default:
          item.mxShow = false;
          item.iconChange = "glyphicon glyphicon-menu-down";
          break;
      }
    }

html:

<div class="col-sm-12 detial_box" ng-click="selectHdr($index)" ng-class="{ dtl_select : $index == selectedIndex }">
  <div class="col-sm-3" style="margin-top:60px; ">
   <button class="btn btn-primary" ng-click="toogleShowDtl(o,$event)">详情</button>
  </div>
  <div class="down_img">
    <span class="{{o.iconChange}} glyphicon glyphicon-menu-down" ng-click="toogleShowDtl(o,$event)"></span>
  </div>
</div>
<div class="col-sm-12 mx_box check-element animate-show-hide" ng-show="o.mxShow">
  <!--明细内容-->
</div>

当点击事件触发的时候,当前行数据中并没有mxShow这个字段,故循环为其添加上该字段并赋值为false,当前被点击的行不能执行这个操作,否则第一次点击的时候改行的明细是不会展示的。后面的switch case语句保证了第一次点击mxShow没有值 以及mxShow值切换的问题。item.iconChange 的值是用来控制中间字体图标的切换,当明细没展示的时候图标是向下的,代表可以展开,当明细显示的时候图标向上,代表可以收起。

ng-show="o.mxShow" 根据mxShow的值来确定明细是否展示。

class="{{o.iconChange}} glyphicon glyphicon-menu-down"

用来切换图标

最终效果图如下(不知道怎么上传动图o(?□?)o)

Agularjs妙用双向数据绑定实现手风琴效果

以上所述是小编给大家介绍的Agularjs妙用双向数据绑定实现手风琴效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
麻雀虽小五脏俱全 Dojo自定义控件应用
Sep 04 Javascript
HTML颜色选择器实现代码
Nov 23 Javascript
基于jQuery中对数组进行操作的方法
Apr 16 Javascript
js根据日期判断星座的示例代码
Jan 23 Javascript
了不起的node.js读书笔记之node的学习总结
Dec 22 Javascript
js如何实现点击标签文字,文字在文本框出现
Aug 05 Javascript
JS控制文本域只读或可写属性的方法
Jun 24 Javascript
js删除数组元素、清空数组的简单方法(必看)
Jul 27 Javascript
Node.js学习之地址解析模块URL的使用详解
Sep 28 Javascript
Node.js成为Web应用开发最佳选择的原因
Feb 05 Javascript
vue等两个接口都返回结果再执行下一步的实例
Sep 08 Javascript
Java 生成随机字符的示例代码
Jan 13 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
May 26 #Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
May 26 #Javascript
jQuery导航条固定定位效果实例代码
May 26 #jQuery
mongoose中利用populate处理嵌套的方法
May 26 #Javascript
Angularjs修改密码的实例代码
May 26 #Javascript
详解vue.js的devtools安装
May 26 #Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
May 26 #Javascript
You might like
PHP制作图型计数器的例子
2006/10/09 PHP
PHP简洁函数(PHP简单明了函数语法)
2012/06/10 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
2017/02/06 PHP
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
2013/03/11 Javascript
JavaScript中document.forms[0]与getElementByName区别
2015/01/21 Javascript
javascript删除数组重复元素的方法汇总
2015/06/24 Javascript
JavaScript几种数组去掉重复值的方法推荐
2016/04/12 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
炫酷的js手风琴效果
2016/10/13 Javascript
使用html+js+css 实现页面轮播图效果(实例讲解)
2017/09/21 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
nodejs基础之多进程实例详解
2018/12/27 NodeJs
Jquery异步上传文件代码实例
2019/11/13 jQuery
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
Python绑定方法与非绑定方法详解
2017/08/18 Python
简单实现Python爬取网络图片
2018/04/01 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
python实现flappy bird游戏
2018/12/24 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
2019/06/17 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
应届大专毕业生自我鉴定
2014/04/08 职场文书
ktv筹备计划书
2014/05/03 职场文书
商务邀请函
2015/01/30 职场文书
财务会计求职信范文
2015/03/20 职场文书
2015年宣传工作总结
2015/04/08 职场文书
2015年村党支部工作总结
2015/04/30 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书