【发布时间】:2015-06-11 21:32:49
【问题描述】:
我为一个网站设计了一个 JQuery 插件,目的是帮助一个具有绝对位置的元素居中,使用像素而不是百分比。 当页面开始时,元素垂直居中但不水平居中(margin-left=0)。当我在控制台中使用相同的脚本时,我应用到一个元素并且它可以工作。
附加函数的代码:
$(document).ready(function() {
$(element).psfCenter();
});
功能:
(function ($){
// center element
$.fn.psfCenter=function(orientation){
return this.each(function() {
var widthParent=$(this).parent().width()/2;
var heightParent=$(this).parent().height()/2;
var widthElement=$(this).width()/2;
var heightElement=$(this).height()/2;
var left=widthParent-widthElement;
var top=heightParent-heightElement;
console.log(orientation)
switch(orientation){
case"x":
$(this).css({
'position':'absolute',
'margin-left':left,
})
break;
case "y":
$(this).css({
'position':'absolute',
'margin-top':top
})
break;
default:
$(this).css({
'position':'absolute',
'margin-left':left,
'margin-top':top
})
break;
}
});
};
})(jQuery);
【问题讨论】:
-
绝对定位元素不需要使用
margin-*,而是使用top,left,right or bottom,检测位置而不是margin。 -
不工作... left=0 :(
标签: javascript jquery centering absolute