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 相关文章推荐
Javascript学习笔记一 之 数据类型
Dec 15 Javascript
js中AppendChild与insertBefore的用法详细解析
Dec 16 Javascript
浅谈JavaScript实现面向对象中的类
Dec 09 Javascript
js实现网站最上边可关闭的浮动广告条代码
Sep 04 Javascript
基于jQuery实现仿百度首页选项卡切换效果
May 29 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
Dec 13 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
Mar 30 Javascript
使用原生js封装的ajax实例(兼容jsonp)
Oct 12 Javascript
Vue作用域插槽slot-scope实例代码
Sep 05 Javascript
ajax与jsonp的区别及用法
Oct 16 Javascript
PM2自动部署代码步骤流程总结
Dec 10 Javascript
JS正则表达式常见函数与用法小结
Apr 13 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+MYSQL的文章管理系统(一)
2006/10/09 PHP
轻松修复Discuz!数据库
2008/05/03 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
2012/07/16 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
2018/04/20 PHP
laravel框架查询数据集转为数组的两种方法
2019/10/10 PHP
深入理解JavaScript定时机制
2010/10/29 Javascript
JS基础之undefined与null的区别分析
2011/08/08 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
webpack实现热加载自动刷新的方法
2017/07/30 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
重学JS之显示强制类型转换详解
2019/06/30 Javascript
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
python self,cls,decorator的理解
2009/07/13 Python
使用Python设置tmpfs来加速项目的教程
2015/04/17 Python
python format 格式化输出方法
2018/07/16 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
python 多线程串行和并行的实例
2019/02/22 Python
pygame实现五子棋游戏
2019/10/29 Python
python 实现图片上传接口开发 并生成可以访问的图片url
2019/12/18 Python
基于Tensorflow批量数据的输入实现方式
2020/02/05 Python
浅谈Python爬虫原理与数据抓取
2020/07/21 Python
python openssl模块安装及用法
2020/12/06 Python
如何用Python徒手写线性回归
2021/01/25 Python
个人简历自我鉴定
2013/10/11 职场文书
污水厂厂长岗位职责
2014/01/04 职场文书
实习协议书范本
2014/04/22 职场文书
加入学生会演讲稿
2014/04/24 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
课外活动实习计划
2015/01/19 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang