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 相关文章推荐
更优雅的事件触发兼容
Oct 24 Javascript
js控制页面控件隐藏显示的两种方法介绍
Oct 09 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
Sep 09 Javascript
javascript 动态修改css样式方法汇总(四种方法)
Aug 27 Javascript
每天一篇javascript学习小结(面向对象编程)
Nov 20 Javascript
javascript简单进制转换实现方法
Nov 24 Javascript
微信小程序 PHP后端form表单提交实例详解
Jan 12 Javascript
微信小程序实战之自定义toast(6)
Apr 18 Javascript
vue webpack开发访问后台接口全局配置的方法
Sep 18 Javascript
vue-better-scroll 的使用实例代码详解
Dec 03 Javascript
vue使用微信扫一扫功能的实现代码
Apr 11 Javascript
如何解决jQuery 和其他JS库的冲突
Jun 22 jQuery
使用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
一个显示天气预报的程序
2006/10/09 PHP
php防止站外远程提交表单的方法
2014/10/20 PHP
PHP CodeIgniter框架的工作原理研究
2015/03/30 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
php封装的mysqli类完整实例
2016/10/18 PHP
php session的应用详细介绍
2017/03/22 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
php图片裁剪函数
2018/10/31 PHP
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
Extjs4 关于Store的一些操作(加载/回调/添加)
2013/04/18 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
2014/09/03 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
AngularJS实用基础知识_入门必备篇(推荐)
2017/07/10 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
前端MVVM框架解析之双向绑定
2018/01/24 Javascript
JavaScript实现的拼图算法分析
2019/02/13 Javascript
vue component 中引入less文件报错 Module build failed
2019/04/17 Javascript
JS实现音量控制拖动
2020/01/15 Javascript
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
Python中 map()函数的用法详解
2018/07/10 Python
Python 获取div标签中的文字实例
2018/12/20 Python
python使用pygame模块实现坦克大战游戏
2020/03/25 Python
python数据挖掘需要学的内容
2019/06/23 Python
美国最大的城市服装和运动鞋零售商:Jimmy Jazz
2016/11/19 全球购物
美国迪克体育用品商店:DICK’S Sporting Goods
2018/07/24 全球购物
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
英国专业美容产品在线:Mylee(从指甲到脱毛)
2020/07/06 全球购物
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
软件毕业生个人鉴定
2014/03/03 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
2014年社区妇联工作总结
2014/12/02 职场文书
小学中队委竞选稿
2015/11/20 职场文书
Vue的生命周期一起来看看
2022/02/24 Vue.js