【发布时间】:2011-10-06 14:16:37
【问题描述】:
我有一个函数可以做一些事情,它做的一件事是计算高度/宽度并应用 css 顶部/左侧进行居中。我不想多次重写公式,而是希望能够重用它并通过它传递参数。
我有:
loading.css({
top: (wrapper.height() - loading.outerHeight()) / 2 + 'px',
left: (wrapper.width() - loading.outerWidth()) / 2 + 'px'
});
我希望能够重复使用这两个公式,并将loading 替换为其他已注册的元素。
我不知道自己在做什么,我尝试了几件失败的事情......
我希望能够通过 loading._center(); 之类的方式调用它
当函数运行时,它会附加加载 div 并使用上面的代码计算绝对定位 top 和 left。我希望它在窗口调整大小时保持居中,所以我基本上复制了上面的代码并用$(window).resize 函数包装它。
当显示错误 div 时,由于高度/宽度尺寸不同,我正在使用类似的代码再次计算顶部和左侧。而不是复制element.css({top: [...], left: [...]}),我只想做类似...
_center = function() {
var context = $(this);
context.css({
top: (wrapper.height() - context.outerHeight()) / 2 + 'px',
left: (wrapper.width() - context.outerWidth()) / 2 + 'px'
});
};
loading._center();
我很接近。我忘了返回计算结果。我现在有:
_center = function($this) {
$this.css({
top: (wrapper.height() - $this.outerHeight()) / 2 + 'px',
left: (wrapper.width() - $this.outerWidth()) / 2 + 'px'
});
};
_center(loading);
【问题讨论】:
-
提供更多示例,说明如何重用这些函数
标签: javascript jquery formula reusability