2012-04-03 5 views
1

Gibt es eine Möglichkeit, einen Operator + = in dem CSS-Operator (unter der Annahme ui.value in dem Beispiel einen Zahlenwert)+ = Operator innerhalb CSS-Methode in jQuery

So etwas wie dies (die doesn zu erreichen‘ t Arbeit):

$("#resume_holder").contents().find('body').children().css('font-size', +=ui.value); 
+0

@MatthewBlancarte Nicht so auch nicht. – iambriansreed

Antwort

5

Versuchen:

$("#resume_holder") 
    .contents() 
    .find('body') 
    .children() 
    .css('font-size', '+=' + ui.value); 

(wenn Sie mit jQuery> = 1.6)

ein aut die Dokumentation für CSS:

Ab jQuery 1,6, Css() akzeptiert relative Werte ähnlich wie .animate(). Relative Werte sind eine Zeichenfolge beginnend mit + = oder - = bis erhöhen oder verringern den aktuellen Wert. Beispiel: Wenn das Padding-left eines Elements 10px ist, würde .css ("padding-left", "+ = 15") insgesamt Padding-left von 25px ergeben.

Beispiel:http://jsfiddle.net/JMRPf/ (trivial Ich weiß, aber der Beweis, dass es funktioniert)

+0

Ordentlich. Ich dachte immer, du musst eine Einheit einfügen, wenn du CSS-Werte wie die Schriftgröße änderst. Aber anscheinend nimmt es den bereits eingestellten Einheitentyp an. Ist das irgendwo dokumentiert? – iambriansreed

+0

Ja, das ist es - ziemlich cool. Ich hätte es versuchen sollen, ich habe einfach angenommen, dass es nicht funktionieren würde. – jsuissa

0

Sie die animate Methode von jQuery verwenden könnte, aber das würde das Ergebnis nach und nach zeigen .. ist das ein Problem?

$("#resume_holder").contents().find('body').children().animate('font-size', ui.value); 

Das würde die aktuelle Schriftgröße ändern, die ui.value enthält.

0

Kurze Antwort, nein.

Jedoch kann dies erreicht werden wie folgt (nicht getestet):

$("#resume_holder").contents().find('body').children().each(function() { 
    $(this).css('font-size', $(this).css('font-size') + ui.value); 
}); 
1

Sie könnten den tatsächlichen Wert von font-size in eine Variable halten, fügen Sie den ui.value und asign es zurück:

var crtFontSize = parseInt($("#resume_holder").contents().find('body').children().css('font-size')); 
crtFontSize += ui.value; 
$("#resume_holder").contents().find('body').children().css('font-size', crtFontSize + 'px'); 
+0

Danke - Während .css() akzeptiert + =, akzeptiert es nicht * = - also das war großartig. – jsuissa

0

Nicht sicher über css, aber Sie können versuchen, es mit animate Methode zu implementieren.

$("#resume_holder").contents().find('body').children() 
.animate({ fontSize: '+='+ui.value }); 
Verwandte Themen