位置 API 重构
继续进行 API 重构,我们计划对位置实用程序进行一些更改。
API 重构
将 offset 选项合并到 my 和 at 选项中
offset 选项将被删除,取而代之的是将 offset 作为 my 或 at 选项的一部分。
例如,目前你会这样写
$( "#elem" ).position({ my: "left top", at: "left top", of: "#otherElem", offset: "50 20" });
现在你可以这样写
$( "#elem" ).position({ my: "left+50 top+20", at: "left top", of: "#otherElem" });
无论你是在 my 还是 at 选项中包含 offset,offset 都将始终根据最终位置进行调整,就像当前的 offset 选项一样。我们还计划支持百分比,这样你就可以根据元素的宽度或高度的百分比来偏移元素。如果你在 my 选项中指定百分比,那么百分比将基于被定位元素的大小。如果你在 at 选项中指定百分比,那么百分比将基于被定位元素的大小。
例如,要将元素放置在屏幕下方 1/4 处并水平居中,你可以这样做
$( "#elem" ).position({ my: "center top", at: "center top+25%", of: window });
要将元素定位,使其仅显示其左侧的 10%,你可以这样做
$( "#elem" ).position({ my: "left-10% center", at: "right center", of: window });
更好的碰撞处理
目前碰撞处理相当简单。如果你启用碰撞(通过指定 fit 或 flip),那么插件会检测到是否有碰撞,如果有,它会相应地移动元素。但是,根据元素的大小,这种调整实际上可能会导致元素可见度更低。我们计划使碰撞处理更智能,这样它永远不会使定位更糟。API 不会改变,只是碰撞处理会更好。
反馈
我们很乐意听到你对这些更改的反馈。我们希望确保在最终确定并实施这些更改之前解决社区可能遇到的任何问题。如果你有任何反馈,请在 相关论坛帖子 上发表。谢谢。
Pingback: 提到位置 API 重构的推文 « jQuery UI 博客 - Topsy.com
Pingback: 位置 API 重构