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

因为汇总(上半部分)和明细(下面的浅色部分)在不同的情况下显示的字段数量是不一样的,而且还有编辑和展示的状态切换,所以需要自己实现手风琴效果。
初步的想法是用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妙用双向数据绑定实现手风琴效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# angularjs
# 双向数据绑定
# angularjs手风琴效果
# JS实现图片手风琴效果
# JavaScript手风琴页面制作
# Vue.js手风琴菜单组件开发实例
# js实现带三角符的手风琴效果
# js实现简单的手风琴效果
# js以及jquery实现手风琴效果
# 原生JS实现垂直手风琴效果
# 原生js实现手风琴功能(支持横纵向调用)
# Html5 js实现手风琴效果
# JS实现手风琴特效
# 绑定
# 小编
# 在此
# 帮我
# 给大家
# 为其
# 所示
# 不知道怎么
# 时请
# 所述
# 给我留言
# 值为
# 感谢大家
# 如下图
# 设置成
# 疑问请
# 有任何
# 情况下
# 我决定
# 是用来
相关文章:
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
如何快速生成凡客建站的专业级图册?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
如何通过FTP服务器快速搭建网站?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
如何通过万网虚拟主机快速搭建网站?
如何生成腾讯云建站专用兑换码?
宝塔新建站点为何无法访问?如何排查?
如何在IIS中新建站点并配置端口与物理路径?
如何用虚拟主机快速搭建网站?详细步骤解析
全景视频制作网站有哪些,全景图怎么做成网页?
如何通过智能用户系统一键生成高效建站方案?
如何在景安云服务器上绑定域名并配置虚拟主机?
如何挑选最适合建站的高性能VPS主机?
定制建站流程解析:需求评估与SEO优化功能开发指南
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
建站之星如何配置系统实现高效建站?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
如何选择服务器才能高效搭建专属网站?
如何高效生成建站之星成品网站源码?
如何高效完成自助建站业务培训?
javascript中的try catch异常捕获机制用法分析
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
建站之星安装失败:服务器环境不兼容?
如何在Tomcat中配置并部署网站项目?
建站主机无法访问?如何排查域名与服务器问题
网站制作费用多少钱,一个网站的运营,需要哪些费用?
,想在网上投简历,哪几个网站比较好?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何快速完成中国万网建站详细流程?
css网站制作参考文献有哪些,易聊怎么注册?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
如何快速重置建站主机并恢复默认配置?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
网站设计制作公司地址,网站建设比较好的公司都有哪些?
如何在阿里云完成域名注册与建站?
利用JavaScript实现拖拽改变元素大小
如何在Windows环境下新建FTP站点并设置权限?
Swift中switch语句区间和元组模式匹配
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
PHP正则匹配日期和时间(时间戳转换)的实例代码
常州自助建站费用包含哪些项目?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
,南京靠谱的征婚网站?
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
建站之星如何实现网站加密操作?
如何选择高效可靠的多用户建站源码资源?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
Swift中循环语句中的转移语句 break 和 continue
*请认真填写需求信息,我们会在24小时内与您取得联系。