EDIT:
См. Рабочий пример здесь .
<div id="container">
<div id="element">
</div>
</div>
<style>
#container{
height:100px;
width:100px;
border:1px solid #000;
background:#EEE;
position:relative;
}
#element{
height:50px;
width:50px;
border:1px solid #000;
background:#333;
position:relative;
}
<style>
<script>
function centerDiv(element, xPosFromCenter, yPosFromCenter){
var xPos = parseInt(element.parent().css('width'))/2 -parseInt(element.css('width'))/2 - xPosFromCenter;
var yPos = parseInt(element.parent().css('height'))/2 -parseInt(element.css('height'))/2 - yPosFromCenter;
element.css({top: yPos, left:xPos});
}
$().ready(function(){
centerDiv($('#element'), 0, 0);
});
<script>
Конец редактирования
Что ж, разве делегирование работы "центрирования" собственной функции не поможет?
function centerDiv(element, parent){
var Ctop = $(element).offset().top + ($(element).height() / 2) - (parent.outerHeight() / 2)
var Cleft = $(element).offset().left + ($(element).width() / 2) - (parent.outerWidth() / 2)
return {ctop: Ctop, cleft:Cleft};
}
В вашей вызывающей функции ..
.
.
.
var obj = centerDiv($(this), $('#bThis'));
$('#bThis').css({'left':obj.cleft, 'top':obj.ctop}).fadeIn(200);
.
.
.