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 相关文章推荐
JS实现浏览器菜单命令
Sep 05 Javascript
JavaScript 函数式编程的原理
Oct 16 Javascript
Javascript保存网页为图片借助于html2canvas库实现
Sep 05 Javascript
初识Node.js
Mar 20 Javascript
html+js+highcharts绘制圆饼图表的简单实例
Aug 04 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
Sep 19 Javascript
Jquery和Js获得元素标签名称的方法总结
Oct 08 Javascript
jQuery双向列表选择器select版
Nov 01 Javascript
原生JS实现跑马灯效果
Feb 20 Javascript
angular使用md5,CryptoJS des加密的方法
Jun 03 Javascript
简单分析js中的this的原理
Aug 31 Javascript
vue在图片上传的时候压缩图片
Nov 18 Vue.js
使用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
仿jQuery的siblings效果的js代码
2011/08/09 Javascript
理解JavaScript的prototype属性
2012/02/11 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
2017/06/15 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
2019/02/02 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
详解JS预解析原理
2020/06/16 Javascript
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
python实现博客文章爬虫示例
2014/02/26 Python
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
Python实现获取照片拍摄日期并重命名的方法
2017/09/30 Python
Ubuntu下使用python读取doc和docx文档的内容方法
2018/05/08 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
对Python w和w+权限的区别详解
2019/01/23 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
Python使用scipy模块实现一维卷积运算示例
2019/09/05 Python
python中os包的用法
2020/06/01 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
如何写一份好的自荐信
2014/01/02 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
优秀教师单行材料
2014/12/16 职场文书
自我检讨书范文
2015/01/28 职场文书
2015年部门工作总结范文
2015/03/31 职场文书
2016年五一促销广告语
2016/01/28 职场文书
晚会开幕词范文
2016/03/04 职场文书
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python