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代码格式化和语法着色V2
Oct 14 Javascript
Javascript 个人笔记(没有整理,很乱)
Jul 07 Javascript
JavaScript关于select的相关操作说明
Jan 13 Javascript
浅谈Javascript中的12种DOM节点类型
Aug 19 Javascript
JS简单获取日期相差天数的方法
Apr 24 Javascript
详解wow.js中各种特效对应的类名
Sep 13 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 jQuery
解决Angular2 router.navigate刷新页面的问题
Aug 31 Javascript
对angularJs中自定义指令replace的属性详解
Oct 09 Javascript
react-native滑动吸顶效果的实现过程
Jun 03 Javascript
vue+element加入签名效果(移动端可用)
Jun 17 Javascript
webpack proxy 使用(代理的使用)
Jan 10 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
我的论坛源代码(九)
2006/10/09 PHP
php 生成WML页面方法详解
2009/08/09 PHP
完美解决PHP中文乱码
2009/11/26 PHP
php笔记之:文章中图片处理的使用
2013/04/26 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
php给数组赋值的实例方法
2019/09/26 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
jquery的map与get方法详解
2013/11/04 Javascript
jquery选择器简述
2015/08/31 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
Vue之mixin全局的用法详解
2018/08/22 Javascript
Vue cli构建及项目打包以及出现的问题解决
2018/08/27 Javascript
AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
解决Nuxt使用axios跨域问题
2020/07/06 Javascript
Python开发WebService系列教程之REST,web.py,eurasia,Django
2014/06/30 Python
python正则表达式及使用正则表达式的例子
2018/01/22 Python
Python打印输出数组中全部元素
2018/03/13 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
HTML5 window/iframe跨域传递消息 API介绍
2013/08/26 HTML / CSS
html5设计原理(推荐收藏)
2014/05/17 HTML / CSS
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
澳大利亚香水在线商店:City Perfume
2020/09/02 全球购物
销售经理岗位职责
2014/03/16 职场文书
电工实训心得体会
2016/01/14 职场文书
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python
详解PHP Swoole与TCP三次握手
2021/05/27 PHP
Vue3.0写自定义指令的简单步骤记录
2021/06/27 Vue.js
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android
tomcat下部署jenkins的方法
2022/05/06 Servers
python内置模块之上下文管理contextlib
2022/06/14 Python
前端框架ECharts dataset对数据可视化的高级管理
2022/12/24 Javascript