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 相关文章推荐
TopList标签和JavaScript结合两例
Aug 12 Javascript
javascript 拖放效果实现代码
Jan 22 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
Jun 18 Javascript
js实现简单选项卡与自动切换效果的方法
Apr 10 Javascript
javascript鼠标滑动评分控件完整实例
May 13 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
Nov 10 Javascript
JS中如何实现Laravel的route函数详解
Feb 12 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
Apr 18 Javascript
使用cookie绕过验证码登录的实现代码
Oct 12 Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
Dec 26 Javascript
JS实现的合并多个数组去重算法示例
Apr 11 Javascript
vue组件中传值EventBus的使用及注意事项说明
Nov 16 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 自定义错误处理函数trigger_error()
2013/03/26 PHP
php生成excel列序号代码实例
2013/12/24 PHP
php 判断IP为有效IP地址的方法
2018/01/28 PHP
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
理解JS事件循环
2016/01/07 Javascript
iScroll.js 使用方法参考
2016/05/16 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
浅谈JS如何实现真正的对象常量
2017/06/25 Javascript
详解webpack和webpack-simple中如何引入css文件
2017/06/28 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
mustache.js实现首页元件动态渲染的示例代码
2020/12/28 Javascript
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
python自定义异常实例详解
2017/07/11 Python
Python三级菜单的实例
2017/09/13 Python
python调用API实现智能回复机器人
2018/04/10 Python
Python实现确认字符串是否包含指定字符串的实例
2018/05/02 Python
详解python--模拟轮盘抽奖游戏
2019/04/12 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
基于Python的身份证验证识别和数据处理详解
2020/11/14 Python
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
法国春天百货官网:Printemps.com
2020/06/29 全球购物
自荐信如何“自荐”
2013/10/24 职场文书
市场营销专业推荐信
2013/11/03 职场文书
英语专业推荐信
2013/11/16 职场文书
幼儿园小班家长寄语
2014/04/02 职场文书
2014领导班子四风问题对照检查材料思想汇报
2014/09/21 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
优秀共产党员事迹材料2016
2016/02/29 职场文书
MySQL系列之十一 日志记录
2021/07/02 MySQL
分享3个非常实用的 Python 模块
2022/03/03 Python