filter 属性

本文介绍了CSS filter属性的使用,包括灰度、褐色、饱和度、色相旋转、反色、透明度、亮度、对比度、模糊和阴影等效果。通过调整不同参数,可以实现各种图像视觉特效,例如将图片变为灰度、增加饱和度、添加阴影等。

filter 属性定义了元素(通常是<img>)的可视效果(例如:模糊与饱和度)。

1、grayscale 灰度(值为0-1之间的小数)

filter:grayscale(1); -webkit-filter:grayscale(1);

0表示灰度为0%,显示原图,1 表示灰度为100%灰色。

2、sepia 褐色(值为0-1之间的小数)

filter:sepia(1); -webkit-filter:sepia(1);

0表示褐色度为0%,显示原图,1 表示褐色度为100%显示褐色。

3、saturate 饱和度(值为num)

filter:saturate(1.8); -webkit-filter:saturate(1.8);

0表示饱和为0,图片显示黑白色,0.5表示饱和度为原图的一半,1表示饱和度等于原图,数值大于1表示饱和度加强。

4、hue-rotate 色相旋转(值为angle)角度deg

filter:hue-rotate(60deg); -webkit-filter:hue-rotate(60deg);

表示色相旋转的具体角度。

5、invert 反色(值为0-1之间的小数)

filter:invert(1); -webkit-filter:invert(1);

0表示不反色显示原图,1表示100%完全反色。

6、opacity 透明度(值为0-1之间的小数)

filter:opacity(0.5); -webkit-filter:opacity(0.5);

0表示完全透明,0.5表示半透明,1表示100%完全不透明。

7、brightness 亮度(值为num)

filter:brightness(2); -webkit-filter:brightness(2);

0表示亮度为0,显示黑色,0.5表示亮度为原图的一半,1表示原图亮度,数值大于1表示亮度加强。

8、contrast 对比度(值为num)

filter:contrast(1.8); -webkit-filter:contrast(1.8);

0表示对比度为0,为纯色,0.5表示对比度为原图的一半,1为原图对比度,数值大于1,值越大,对比度越强。

9、blur 模糊(值为length)filter:blur(5px); -webkit-filter:blur(5px);       表示虚化程度像素值。

10、drop-shadow 阴影filter:drop-shadow(0 0 10px #000); -webkit-filter:drop-shadow(0 0 10px #000);和css3 box-shadow属性值一致。多个属性值可以写一起,用空格隔开,类似transform多属性写法

下面有一个简式图:

 

<think>我们正在讨论WinCC中的CCUATable控件(通常用于显示用户归档数据)的Filter属性。这个属性允许在控件级别对显示的数据进行过滤,而不需要重新查询数据库。 注意:CCUATable是WinCC中的高级表格控件,常用于显示和操作用户归档数据。 我们将从以下几个方面进行说明: 1. Filter属性的基本用法 2. 过滤条件的语法 3. 动态设置过滤条件 4. 清除过滤 5. 注意事项 由于用户的问题是关于“ccuatable filter属性”,我们将重点放在CCUATable控件的Filter属性上。</think>### WinCC CCTable 控件的 Filter 属性详解 #### 一、Filter 属性基础应用 **1. 简单字段过滤** ```vbscript ' 设置表格过滤条件(数值型字段) CCTable1.Filter = "Temperature > 30" CCTable1.Refresh ``` **2. 多条件组合过滤** ```vbscript ' 组合过滤条件(AND/OR逻辑) CCTable1.Filter = "Status = 'Alarm' AND Priority >= 2" CCTable1.ApplyFilter = True ' 立即应用过滤 ``` #### 二、高级过滤技巧 **1. 动态参数过滤** ```vbscript Dim startTime, endTime startTime = Format(Now - 1, "yyyy-mm-dd") endTime = Format(Now, "yyyy-mm-dd") CCTable1.Filter = "EventTime BETWEEN '" & startTime & "' AND '" & endTime & "'" CCTable1.Refresh ``` **2. 模糊匹配过滤** ```vbscript ' 使用通配符进行模糊查询 CCTable1.Filter = "DeviceName LIKE 'Pump%'" ' 匹配Pump开头 CCTable1.Filter = "Message LIKE '%error%'" ' 包含error ``` **3. 空值/非空值过滤** ```vbscript ' 过滤未填写备注的记录 CCTable1.Filter = "Remarks IS NULL" ' 过滤已填写备注的记录 CCTable1.Filter = "Remarks IS NOT NULL" ``` #### 三、特殊场景处理 **1. 日期时间过滤** ```vbscript ' 精确到秒的时间过滤 Dim exactTime exactTime = Format(Now, "yyyy-mm-dd hh:nn:ss") CCTable1.Filter = "LogTime > '" & exactTime & "'" ``` **2. 枚举值过滤** ```vbscript ' 多选值过滤(使用IN运算符) CCTable1.Filter = "Status IN ('Warning', 'Critical')" ``` **3. 数值范围过滤** ```vbscript Dim minVal, maxVal minVal = HMIRuntime.Tags("MinLimit").Read maxVal = HMIRuntime.Tags("MaxLimit").Read CCTable1.Filter = "Value BETWEEN " & minVal & " AND " & maxVal ``` #### 四、最佳实践方案 | **场景** | **推荐方案** | **示例** | |------------------------|----------------------------------|------------------------------------------| | 简单字段过滤 | 直接设置Filter属性 | `CCTable.Filter = "Status='Alarm'"` | | 动态条件过滤 | 字符串拼接 | `"Value > " & currentValue` | | 多条件组合 | 使用AND/OR逻辑 | `"Temp>30 AND Pressure<100"` | | 用户交互过滤 | 通过输入框获取条件 | 结合TextBox控件输入过滤条件 | | 性能敏感场景 | 先设置Filter再刷新 | 避免频繁Refresh | **完整过滤流程示例**: ```vbscript Sub ApplyCustomFilter() ' 步骤1:获取用户输入 Dim userFilter userFilter = ScreenItems("txtFilter").Text ' 步骤2:安全处理输入 userFilter = Replace(userFilter, "'", "''") ' 防SQL注入 ' 步骤3:应用过滤条件 CCTable1.Filter = userFilter ' 步骤4:刷新表格显示 CCTable1.Refresh ' 步骤5:更新状态显示 HMIRuntime.Trace "已应用过滤条件: " & userFilter End Sub ``` > ⚠️ **关键注意事项**: > 1. **性能优化**: > - 大数据集避免使用模糊查询 `LIKE '%text%'` > - 复杂过滤前先执行 `CCTable1.DisableRedraw = True` > - 过滤后执行 `CCTable1.EnableRedraw = True` > > 2. **安全防护**: > ```vbscript > ' 过滤特殊字符防止注入攻击 > Function SafeFilter(input) > SafeFilter = Replace(input, ";", "") > SafeFilter = Replace(SafeFilter, "--", "") > SafeFilter = Replace(SafeFilter, "'", "''") > End Function > ``` > > 3. **空值处理**: > ```vbscript > If CCTable1.Filter = "" Then > MsgBox "过滤条件不能为空!" > Exit Sub > End If > ``` > > 4. **错误处理**: > ```vbscript > On Error Resume Next > CCTable1.Filter = filterStr > If Err.Number <> 0 Then > MsgBox "过滤条件错误:" & Err.Description > End If > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值