jQuery.cssHooks返回类型:Object
描述:钩子直接进入jQuery以覆盖特定的CSS属性如何被检索或设置,规范化CSS属性命名,或者创建自定义属性。
增补版本:1.4.3jQuery.cssHooks
$.cssHooks
对象为取得特定CSS值和设置特定CSS值提供了定义函数的一种方式。它还可以用来为规范化CSS3功能创建新的cssHooks,譬如盒阴影以及渐变。
举个例子,基于Wekkit的浏览器一些版本需要-webkit-border-radius
来设置某个元素上的border-radius
,与此同时Firefox版本需要-moz-border-radius
。css勾子可以规范化这些供应商前缀属性,使.css()
接受单个标准属性名称(border-radius
,或者利用DOM属性语法,borderRadius
)。
除了为如何处理特定的样式属性提供更加细致的控制之外,$.cssHooks
扩展了可用于.animate()
方法的属性集合。
定义一个新的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
|
|
功能测试
在规范化供应商特有的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(连线)样式设置border-radius:
1
2
|
|
如果浏览器缺少对CSS属性的任何形式的支持,供应商前缀或没有,此样式不会应用于元素。然而,如果浏览器支持一个专有的替代方案,可以把它应用于cssHook来替代。
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
|
|
用css勾子变动CSS
通过对jQuery.fx.step
对象添加一个属性,CSS勾子可以放进jQuery的动画机制:
1
2
3
|
|
现在,此方法对简单数值的动画作用得很好。可能需要更多的自定义代码,取决于此CSS属性、它返回的值类型,以及动画的复杂性。