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 相关文章推荐
使用ExtJS技术实现的拖动树结点
Aug 05 Javascript
javascript学习笔记(十一) 正则表达式介绍
Jun 20 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
Feb 13 Javascript
jquery删除ID为sNews的tr元素的内容
Apr 10 Javascript
jquery搜索框效果实现方法
Jan 16 Javascript
QQ登录背景闪动效果附效果演示源码下载
Sep 22 Javascript
详解JavaScript的回调函数
Nov 20 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
Oct 17 Javascript
jQuery ajax读取本地json文件的实例
Oct 31 jQuery
vue通过点击事件读取音频文件的方法
May 30 Javascript
详解Vue中watch对象内属性的方法
Feb 01 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
Nov 26 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
Dedecms常用函数解析
2008/02/01 PHP
配置php网页显示各种语法错误
2013/09/23 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
PHP图片自动裁切应付不同尺寸的显示
2014/10/16 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
让任务管理器中的CPU跳舞的js代码
2008/11/01 Javascript
JavaScript 常用函数
2009/12/30 Javascript
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
详解Vue方法与事件
2017/03/09 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
2019/08/17 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
2019/09/27 Javascript
VUE+elementui面包屑实现动态路由详解
2019/11/04 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
python解析中国天气网的天气数据
2014/03/21 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
详解Django将秒转换为xx天xx时xx分
2019/09/27 Python
解决json中ensure_ascii=False的问题
2020/04/03 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
详解html2canvas截图不能截取圆角图片的解决方案
2018/01/30 HTML / CSS
水芝澳美国官网:H2O Plus
2016/10/15 全球购物
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
HTC VIVE美国官网:VR虚拟现实眼镜
2018/02/13 全球购物
个性大学生自我评价
2013/12/04 职场文书
中层干部竞争上岗演讲稿
2014/01/13 职场文书
四年大学生活的自我评价范文
2014/02/07 职场文书
优秀食品类广告词
2014/03/19 职场文书
水电站项目建议书
2014/05/12 职场文书
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
2014年生产部工作总结
2014/12/17 职场文书