AngularJS2中一种button切换效果的实现方法(二)


Posted in Javascript onMarch 27, 2017

AngularJS2中一种button切换效果的实现方法(二)

之前用三目表达式和ng-class实现了按钮切换效果,似乎达到了我的预期,但是我觉得还有改进空间,网上找了一些资料,大概还有以下几种实现方式:

路由

<button class="btn1" routerLink="component1" routerLinkActive="active" type="submit">btn1</button>
<button class="btn2" routerLink="component2" routerLinkActive="active" type="submit">btn2</button>
.active {
 background-color: white;
}

将button切换的页面写成一个component,通过routerLink链接到对应的component并显示出来,routerLinkActive来控制路由链接激活后button的样式应用的class。

但是这个有局限性,适合button按下去后,整个页面会有大幅变化的应用场景,那么还有其他方法吗?答案是肯定的。

[class]与(click)

还是通过ngclass和ngclick配合,不过方法和之前写的略有不同。

字符串数组形式

<button [class]="{true:'btn1',false:'btn2'}[isChange]" (click)="isChange=true">btn1</button>
<button [class]="{false:'btn1',true:'btn2'}[isChange]" (click)="isChange=false" >btn2</button>
.btn1{
 width: 120px;
 height: 43px;
 border: 1px solid #EEEEEE;
 background: white;
 border-bottom: none;
 text-align: center;
}
.btn2{
 border: 1px solid #EEEEEE;
 border-top: 2px solid #238FF9;
 width: 120px;
 height: 42px;
 background: white;
 border-bottom: none;
 text-align: center;
}

字符串数组形式是针对class简单变化,具有排斥性的变化,true是什么class,false是什么class。若要设置初识状态的class,可以在component中的构造函数中预先赋值。

对象key/value处理

<button [class]="{'one':'btn1','two':'btn2','three':'btn3','four':'btn4'}[isChange]" (click)="isChange='one'">btn1</button>
 <button [class]="{'one':'btn1','two':'btn2','three':'btn3','four':'btn4'}[isChange]" (click)="isChange='two'">btn2</button>
 <button [class]="{'one':'btn1','two':'btn2','three':'btn3','four':'btn4'}[isChange]" (click)="isChange='three'">btn3</button>
 <button [class]="{'one':'btn1','two':'btn2','three':'btn3','four':'btn4'}[isChange]" (click)="isChange='four'">btn4</button>

这种方法可以对多个对象赋不同的class。或者可以实现多个button互斥性变化:

<button [class]="{'one':'btn1','two':'btn2','three':'btn2','four':'btn2'}[isChange]" (click)="isChange='one'">btn1</button>
 <button [class]="{'one':'btn2','two':'btn1','three':'btn2','four':'btn2'}[isChange]" (click)="isChange='two'">btn2</button>
 <button [class]="{'one':'btn2','two':'btn2','three':'btn1','four':'btn2'}[isChange]" (click)="isChange='three'">btn3</button>
 <button [class]="{'one':'btn2','two':'btn2','three':'btn2','four':'btn1'}[

以上所述是小编给大家介绍的AngularJS2中一种button切换效果的实现方法(二),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
比较简单的一个符合web标准的JS调用flash方法
Nov 29 Javascript
对xmlHttp对象的理解
Jan 17 Javascript
JavaScript?Apple设备检测示例代码
Nov 15 Javascript
浅析node.js中close事件
Nov 26 Javascript
JS实现控制表格行内容垂直对齐的方法
Mar 30 Javascript
浅谈Javascript数组(推荐)
May 17 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
Oct 14 Javascript
关于angular js_$watch监控属性和对象详解
Apr 24 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
Aug 15 Javascript
JS实现移动端双指缩放和旋转方法
Dec 13 Javascript
关于vue的列表图片选中打钩操作
Sep 09 Javascript
vue element ui validate 主动触发错误提示操作
Sep 21 Javascript
使用AngularJS2中的指令实现按钮的切换效果
Mar 27 #Javascript
详解VUE的状态控制与延时加载刷新
Mar 27 #Javascript
vue2.0实战之使用vue-cli搭建项目(2)
Mar 27 #Javascript
js实现三级联动效果(简单易懂)
Mar 27 #Javascript
JS数组去重(4种方法)
Mar 27 #Javascript
JS实现隔行换色的表格排序
Mar 27 #Javascript
JavaScript实现获取远程的html到当前页面中
Mar 26 #Javascript
You might like
php生成扇形比例图实例
2013/11/06 PHP
PHP常用字符串函数小结(推荐)
2018/08/05 PHP
tp5.1 框架数据库高级查询技巧实例总结
2020/05/25 PHP
基于jquery的拖动布局插件
2011/11/25 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
2013/07/09 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
JS获取月份最后天数、最大天数与某日周数的方法
2015/12/08 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
完美的js div拖拽实例代码
2016/09/24 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
2017/02/28 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
nodejs简单访问及操作mysql数据库的方法示例
2018/03/15 NodeJs
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
关于angular浏览器兼容性问题的解决方案
2020/07/26 Javascript
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
基于Python的接口测试框架实例
2016/11/04 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
python实现矩阵打印
2019/03/02 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
Python列表切片常用操作实例解析
2020/03/10 Python
python 如何区分return和yield
2020/09/22 Python
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
倩碧香港官方网站:Clinique香港
2017/11/13 全球购物
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
意大利奢侈品购物网站:Deliberti
2019/10/08 全球购物
人力资源专员自我评价怎么写
2013/09/19 职场文书
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
厕所文明标语
2014/06/11 职场文书
法学专业求职信
2014/07/15 职场文书
汽车销售助理岗位职责
2015/04/14 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL