2014-01-24 7 views
7

Der folgende Code funktioniert gut in Chrom, aber nicht in Firefox. Der Alarm zeigt einen korrekten Rand in Chrom, während in Firefox immer 0px angezeigt wird.Get Margin-links mit jquery funktioniert nicht in Firefox

HTML:

<div class="center">14</div> 

CSS:

.center { 
    margin: 0 auto; 
    width: 200px; 
    background-color: #ccc; 
} 

JQuery: Ich bin mit neuesten jQuery-Bibliothek

$(function(){ 
    var center = $('.center').css('margin-left'); 
    alert(center); 
}); 

Bitte beachten Sie die jsfiddle in Firefox und Chrome: http://jsfiddle.net/vtbuz/2/

+0

Was wird in Chrome angezeigt? – rednaw

+0

Es zeigt den margin-left-Wert in px, aber in Firefox ist es immer 0px http://jsfiddle.net/vtbuz/2/ Siehe diese Geige in Chrome und Firefox –

+0

Bitte posten Sie Ihre Lösung als Antwort auf Ihre eigene Frage und dann akzeptiere es. Dies hilft anderen Lesern und hält die Site zu einer wertvollen Ressource. – rednaw

Antwort

6

Es ist eine Lösung:

var center = $('.center').offset().left; 

durch diese nutzen wir die richtige linke Position relativ zu dokumentieren erhalten.

0

ändern margin-left zu marginLeft

working demo

+0

funktioniert nicht in Firefox und Chrome http://jsfiddle.net/vtbuz/2/ –

0

Versuchen Sie, diese Marge in FF für die Definition: @ -moz-Dokument URL-Präfix() {(CSS-Regeln)}

0

Retrieval von Stumpfe CSS-Eigenschaften (zB Rand, Hintergrund, Grenze), obwohl mit einigen Browsern funktional, ist nicht garantiert. Zum Beispiel, wenn Sie die gerenderte border-width, Verwendung abzurufen: $ (Elem) CSS- ("borderTopWidth"), $ (Elem) CSS- ("borderBottomWidth" ), und so weiter

http://api.jquery.com/css/

können Sie versuchen,

$('.center').css('marginLeft'); 
+0

Ich versuchte dies, aber nicht funktioniert http://jsfiddle.net/vtbuz/2/ –

+0

@KrishnaPalSingh Sieht aus wie es funktioniert auf Firefox wenn Sie legen diese Eigenschaft in css .. siehe Demo -> http://jsfiddle.net/vtbuz/7/ –

+0

, aber ich möchte die Center div margin-left-Eigenschaft zu berechnen. –

0

versuchen folgende

var center = $('.center').css("margin-left" : "200px"); 

Wenn Sie den Wert von CSS abrufen möchten; Verwenden Sie parseInt() um das Ergebnis, um es in den Zahlenwert umzuwandeln.

var center = parseInt($('.center').css("margin-left")); 

Endlösung

Working Demo - http://jsfiddle.net/tsspinal/zVr6W/1/

$(function(){ 
    var center = $('.center').css('marginLeft'); 
    alert(center); 
    var left = ((parseInt($(window).width() - $('.center').width())/2)-8 + "px"); 
    alert(left); 
}); 
+0

Ich versuche, die margin-left -Eigenschaft mit jQuery nicht zu setzen. –

+0

Redigierte meine Antwort. Ich hoffe, das wird helfen –

+0

Mann, sehe meinen Code ParseInt geben nur 0 statt off 0px. Siehe die Geige –

Verwandte Themen