2010-11-21 12 views
3

Dies ist, was ich versuche, eine Flüssigkeit Tooltip und einen Knopf zu erreichenjquery vertikale align 2 divs

alt text

ich habe. Ihre Breite wird durch das Text- und Div-Padding bestimmt. Der Text kann variieren. Wie wäre es möglich, sie über Jquery vertikal auszurichten?

Der Grund, warum ich jquery verwenden möchte, ist die Verwendung von Tabellen und übermäßigem HTML zu vermeiden.

Ich habe versucht, die Breite() -Funktion, aber es gibt nicht die genaue Breite. Ich nehme an, man sollte auch die Polsterung bekommen?

Schließlich bin ich schrecklich mit Zahlen .. Ich bin nicht sicher, welche Formel verwendet werden kann, aber ich vermute, vielleicht dividieren beide div Weiten von 2 und irgendwie zentriert die Mitten?

EDIT: Wenn Sie auf die Schaltfläche klicken, erscheint der Tooltip und ist absolut nicht störend/schieben Sie andere divs.

EDIT: Unfertige jsfiddle.net/Aezb6

+0

Meinst du * horizontal * auszurichten? –

+0

@user, wenn Sie auf push div klicken, erhalten Sie das Dankeschön für pusing als Aufruf rechts, wenn so lassen Sie mich wissen, es sollte einfach sein nur – kobe

+0

@gov ja Sie erhalten die Popup-Tooltip, wenn Sie auf den Button klicken sollte ich erwähnen Der Tooltip ist absolut, sodass er sich nicht auf andere Divs auswirkt. – CyberJunkie

Antwort

2

die Breite des calloutdiv Get //

widthCallout=$('#calloutdivWidth'); // dies ist dynamisch

teilen diese durch Breite Druckknopf, der konstant ist .

mir gelassen zu bekommen:

left= widthCallout/pushbuttonwidth 

Sie mit paddingLeft Wert rumspielen können + oder - was Ihnen genau in die Mitte gibt:

+0

die Breite des Druckknopfes ist auch dynamisch, sein Text variiert – CyberJunkie

+0

@user, wie dies absolut positioniert ist, ändern Sie es auf linke Eigenschaft – kobe

+0

@user kein Problem, das ist, warum Sie die Breite dynamisch erhalten sollten, aber Sie können Breite nicht wachsen dynamisch, sollten Sie das mit einer gewissen Breite, – kobe

1

dieses Beispiel Siehe:

 
var item = $(".tooltip"); 
var container = $("#container"); 

var position = item.position(); 

var mytop = position.top - container.height() + $(document).scrollTop(); 
var myleft = position.left - container.width() + $(document).scrollLeft(); 

// Correct relative coordinates for IE and WebKIT 
if($.browser.msie || $.browser.webkit){ 
    mytop = position.top - container.height(); 
    myleft = position.left - container.width(); 
} 

container.offset({top: mytop, left: myleft});