2010-11-21 5 views
3

C'est ce que je suis en train de réaliserjquery alignement vertical 2 divs

alt text

J'ai une info-bulle fluide et un bouton. Leur largeur est déterminée par le remplissage de texte et div. Le texte peut varier. Cela dit comment serait-il possible de les aligner verticalement via Jquery?

La raison pour laquelle je veux utiliser jquery est d'éviter d'utiliser des tables et trop de HTML.

J'ai essayé la fonction width() mais elle ne donne pas la largeur exacte. Je suppose que l'on devrait aussi avoir le rembourrage?

Enfin, je suis terrible avec les chiffres .. Je ne suis pas sûr de quelle formule peut être utilisée, mais je soupçonne peut-être diviser les deux largeurs de div par 2 et en quelque sorte centrer les middles?

EDIT: Lorsque vous cliquez sur le bouton, l'info-bulle apparaît et est absolument à ne pas interférer/pousser d'autres divs.

EDIT: Travaux en cours jsfiddle.net/Aezb6~~V~~singular~~3rd

+0

Voulez-vous dire les aligner horizontalement? –

+0

@user, quand vous cliquez sur push div vous obtenez le remerciement pour pusing comme appelez à droite, si oui laissez-moi savoir qu'il devrait être facile seulement – kobe

+0

@gov oui vous obtenez l'info-bulle pop-up en cliquant sur le bouton je devrais mentionner que l'info-bulle est absolue, donc elle n'interfère pas avec les autres divs. – CyberJunkie

Répondre

2

Obtenez la largeur de la calloutdiv //

widthCallout=$('#calloutdivWidth'); // cette dynamique

diviser par la largeur du bouton poussoir qui est constante .

get gauche:

left= widthCallout/pushbuttonwidth 

vous pouvez jouer avec la valeur paddingLeft + ou - ce qui vous donne exactement le centre:

+0

la largeur du bouton poussoir est également dynamique, son texte varie – CyberJunkie

+0

@user, comme cela est absolument positionné changer à la propriété gauche – kobe

+0

@user pas de problème, c'est pourquoi vous devriez obtenir la largeur de façon dynamique, mais vous ne pouvez pas faire croître la largeur dynamiquement, vous devriez fournir cela avec une certaine largeur, – kobe

1

Voir cet exemple:

 
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});