5.12.2 JavaScript用法
有的时候,使用该插件,其顶部和底部的高度不一定是固定的,所以在初始化的时候使用声明式用法就不太合适了。作者对Affix插件提供的JavaScript用法就显得更为灵活了,因为它不仅支持传入数字型的offset,还支持传入能够动态计算offset的function函数。示例如下:
- $('#myAffix').affix({
- offset: {
- top: 100,
- bottom: function () {
- return (this.bottom = $('.bs-footer').outerHeight(true))
- }
- }
- })
这样,如果底部的footer元素有动态变化的情况,通过给bottom设置function动态计算监控就可以了。
总结一下offset的设置规则如下:
❑如果只设置一个数字,则表示top和bottom都使用该数字。例如:offset:100。
❑如果设置了一个object,则表示分别进行设置。如:offset: { top: 10 }或者offset: { top: 10, bottom: 5 }。
❑如果设置了function,则表示要动态计算。就像上面的示例一样。
Affix组件自V3.1.0开始提供了6种事件,即affix和affixed各对应于3种状态(普通、top、buttom)时的事件,如表5-22所示。
调用方式也很简单,和普通的jQuery代码并无二样。