mam mniej plik, który ma kilka czynników:Przechodząc do mniej zmienny JavaScript
@font-size: 100%;
@label-align: left;
@field-width: 230px;
@icon-size: 16px;
@icon-padding: 8px;
W moim skryptu JS muszę wiedzieć sumę początkowych wartości użytkownik określonymi w mniej pliku. Obliczone wartości css mogą się zmieniać w zależności od wielkości kontenera nadrzędnego. Te wartości zmieniają się również przy pierwszym obciążeniu, w zależności od rozmiaru okna.
Niektóre elementy są również tworzone dynamicznie, więc naprawdę trudno jest pobrać poprawne wartości początkowe w JS, ponieważ musiałbym zadeklarować zmienne w różnych punktach kodu i różnych zakresach.
Jednym z pomysłów było zadeklarowanie obiektu "wysokiego zakresu" z pewnymi sztucznymi zmiennymi i przypisanie wartości do zmiennej, gdy tylko dodaję element do DOM, ale okazało się, że jest niepotrzebne i zbędne.
Po wielu godzinach wpadłem na pomysł, który obecnie działa, trochę hacky, ale działa.
MNIEJ:
.less-vars {
width: @field-width + @error-width + @icon-size + (@icon-padding * 2);
}
JS:
var less_vars = $('<div class="less-vars" />').hide().appendTo('body').width();
$('.less-vars').remove();
Czy istnieje inny sposób mogę to zrobić?
Uwaga: na adres [IE bug 955703] (https://connect.microsoft.com/IE/ feedback/details/955703) musisz owinąć 'sRule = oRules [j] .cssText' w' try/catch-Block'. Chociaż jest to poprawnie wdrożone w twoim głównym kontekście, to nie jest w skrzypcach. – Aides