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 实现父窗口引用弹出窗口的值的脚本
Aug 07 Javascript
Javascript String.replace的妙用
Sep 08 Javascript
jquery 经典动画菜单效果代码
Jan 26 Javascript
深入理解JS中的变量及作用域、undefined与null
Mar 04 Javascript
javascript实现禁止鼠标滚轮事件
Jul 24 Javascript
jQuery实现动画效果circle实例
Aug 06 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
Aug 01 Javascript
手把手教你搭建ES6的开发运行环境
Jul 11 Javascript
原生js FileReader对象实现图片上传本地预览效果
Mar 27 Javascript
微信小程序的生命周期的详解
Oct 19 Javascript
Vue入门之数据绑定(小结)
Jan 08 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
Mar 24 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中call_user_func_array的作用
2013/06/07 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
分享一段php获取linux服务器状态的代码
2014/05/27 PHP
PHP多文件上传实例
2015/07/09 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
2016/11/23 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
jQuery中的deferred对象和extend方法详解
2017/05/08 jQuery
微信小程序之获取当前位置经纬度以及地图显示详解
2017/05/09 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
详解微信小程序开发用户授权登陆
2019/04/24 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
vue 解决setTimeOut和setInterval函数无效报错的问题
2020/07/30 Javascript
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
对python pandas中 inplace 参数的理解
2020/06/27 Python
Manjaro、pip、conda更换国内源的方法
2020/11/17 Python
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
英国网上购买门:Direct Doors
2018/06/07 全球购物
捷克街头、运动和滑板一站式商店:BoardStar.cz
2019/10/06 全球购物
UNIX命令速查表
2012/03/10 面试题
护理专业毕业生自荐信范文
2014/01/05 职场文书
有关打架的检讨书
2014/01/25 职场文书
法定代表人身份证明书
2014/09/10 职场文书
终止劳动合同协议书
2014/10/05 职场文书
考试作弊检讨书1000字(5篇)
2014/10/19 职场文书
表扬稿范文
2015/01/17 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
关于教师节的广播稿
2015/08/19 职场文书
军训决心书范文
2015/09/22 职场文书
centos8安装MongoDB的详细过程
2021/10/24 MongoDB
JavaScript 中for/of,for/in 的详细介绍
2021/11/17 Javascript
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技