jQuery.cssHooks返回: 对象
描述: 直接挂钩到 jQuery,以覆盖特定 CSS 属性的获取或设置方式,规范化 CSS 属性命名,或创建自定义属性。
版本添加: 1.4.3jQuery.cssHooks
$.cssHooks
对象提供了一种方法来定义用于获取和设置特定 CSS 值的函数。它还可以用于为规范化 CSS3 特性(如阴影和渐变)创建新的 cssHooks。
例如,某些版本的基于 Webkit 的浏览器需要 -webkit-border-radius
来设置元素的 border-radius
,而早期版本的 Firefox 需要 -moz-border-radius
。css 挂钩可以规范化这些供应商前缀属性,让 .css()
接受单个标准属性名称(border-radius
,或使用 DOM 属性语法,borderRadius
)。
除了提供对特定样式属性处理方式的细粒度控制外,$.cssHooks
还扩展了 .animate()
方法可用的属性集。
定义新的 css 挂钩非常简单。下面的骨架模板可以作为创建您自己的挂钩的指南。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
|
特性测试
在规范化供应商特定的 CSS 属性之前,首先确定浏览器是否支持标准属性或供应商前缀变体。例如,要检查对 border-radius
属性的支持,请查看任何变体是否是临时元素 style
对象的成员。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
|
定义完整的 css 挂钩
要定义完整的 css 挂钩,请将支持测试与第一个示例中提供的填充版本骨架模板结合起来
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
|
然后,您可以在支持的浏览器中使用 DOM(驼峰式)样式或 CSS(连字符)样式设置边框半径
1
2
|
|
如果浏览器不支持任何形式的 CSS 属性(无论是有供应商前缀还是没有),则样式不会应用于元素。但是,如果浏览器支持专有替代方案,则可以将其应用于 cssHooks。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
|
特殊单位
默认情况下,jQuery 会在传递给 .css()
方法的值中添加一个 "px" 单位。可以通过将属性添加到 jQuery.cssNumber
对象来阻止这种行为。
1
|
|
使用 cssHooks 进行动画
css hook 还可以通过将属性添加到 jQuery.fx.step
对象中来挂钩到 jQuery 的动画机制。
1
2
3
|
|
请注意,这最适合简单的数值动画。根据 CSS 属性、它返回的值类型以及动画的复杂性,可能需要更多自定义代码。