## WeX5数据绑定05:css绑定
css绑定(bind-css)为元素添加或删除class,从而改变元素的样式。css绑定非常有用,可以根据数据动态改变元素的样式,比如负值用红色来显示。另外还有一种更直接的改变样式的方法,即通过style绑定。
### 静态class的css绑定
示例代码:
//.w片段
//< 是<的转义符</pre>
<div bind-css="{ profitWarning: currentProfit.get() < 0 }">
Profit Information
</div>
//.js片段
//初始正值,"profitWarning" class不会被应用到div上
this.currentProfit = justep.Bind.observable(15000);
//设置负值,"profitWarning" class将会被应用到div上
this.currentProfit.set(-50);
上面这段代码,根据currentProfit的值会动态改变样式。如果currentProfit<0,就会在div添加样式class “profitWarning”,否则就会移除该class。
绑定规则:
静态class的css绑定通常都是需要判断完成的,如果表达式的返回值为true,则添加该class,如果为false,则移除该class。
### 动态class的css绑定
如果css绑定的值是字符串,则css绑定将会直接把该字符串值作为样式设置到元素class上。
//.w片段
<div bind-css="profitStatus">Profit Information</div>
//.js片段
this.currentProfit = justep.Bind.observable(15000);
this.currentProfit.set(-50);
this.profitStatus = justep.Bind.computed(function() {
return this.currentProfit.get() < 0 ? "profitWarning" : "profitPositive";
}, this);
上面例子profitStatus属性返回的字符串”profitWarning” 或 “profitPositive”会直接作为class设置到元素上,这就是动态class的css绑定。这个特性非常灵活强大,在某些需要需求场景下非常有用。
### 绑定多个class
css绑定可以同时绑定多个class,每个class之间用半角逗号隔开,示例代码如下:
//.w片段
<div bind-css="{ profitWarning: currentProfit.get() < 0, majorHighlight: isSevere }">
### 绑定不符合标识符规则的class
//.w片段
<div bind-css="{ my-class: someValue }">...</div>
my-class不符合javascript标识符规则,导致绑定出错。在这种情况下,可以在class用单引号引起即可,代码如下:
//.w片段
<div bind-css="{ 'my-class': someValue }">...</div>
### 在固定的class之后追加绑定class
//.w片段
<a component="$UI/system/components/justep/button/button"
class="btn" bind-css="{ 'btn-danger': currentProfit.get() < 0 }"
label="button" xid="button1">
<i/>
<span/>
</a>
上面示例代码标签有固定的class ‘btn’,通过bind-css动态追加和移除’btn-danger’ class.
- 快速入门
- 第一个应用
- WeX5产品能力和技术
- wex5技术理念
- WeX5可以怎么玩?
- WeX5和BeX5比较
- UI2开发
- UI2前端框架基础01:应用和页面
- UI2框架基础02:框架结构图和目录
- 组建基础
- 编程基础
- js引用
- css、text引用
- 设置资源依赖
- 代码调试
- 数据组件
- Data组件基础01:列、初始化加载状态、行对象和游标
- Data组件基础02:规则、数据遍历查找
- Data组件基础03:CRUD
- Data组件基础04:Tree、主从数据、更新模式
- Data组件基础05:再谈Data组件新增,查询,保存
- Data组件的JSON数据格式
- WeX5 & BeX5 页面框架核心之数据绑定
- 数据绑定属性系列
- 初识绑定
- visible绑定
- text绑定
- html绑定
- css绑定
- 页面布局
- 页面样式
- 样式基础
- 添加自定义图标(iconfont)
- 常用组件
- bar组件
- contents组件
- 前端路由和页面跳转
- 路由模块
- 页面跳转
- 部署和发布
- 三种部署方式
- Web app部署
- UIServer的缓存机制
- 自定义组件开发
- 组件运行时开发案例
- 组件设计时开发案例
- 组件设计时开发参考
- 属性编辑器配置和开发
- 自定义向导开发(waiting)
- 第三方库集成
- 集成Echarts
- 集成百度和高德地图
- App开发
- 打包
- App打包基础和常见问题
- App打包原理和目录结构
- App打包过程详解
- App打包服务器环境搭建
- 苹果证书申请 使用
- Android和IOS的本地应用图标规范
- Android和IOS的本地App如何安装(apk&ipa)
- 苹果App部署HTTPS进行在线下载安装
- 调试
- Android和IOS真机调试
- 插件
- 如何使用和扩展cordova插件
- cordova插件开发
- 常用cordovar插件
- SQLite插件
- 极光推送(JPush)插件
- 微信支付入门教程
- 微信、支付宝支付开发
- 服务端开发
- App与服务端交互原理
- 轻量级Baas(视频)(文字) (.net版)
- Data组件的JSON数据格式11
- 微信服务号集成(视频)
- 扩展学习资料
- bootstrap
- Knockoutjs
- JQuery
- requirejs
- phonegap/cordova