2015-05-28 2 views
1

У меня есть форма с этими входами:Менее CSS: получить значение функции в JavaScript или JQuery

<input type="text" id="@gray-base" value="#000"> 
 
<input type="text" id="@gray-darker" value="lighten(@gray-base, 13.5%)">

Как я могу получить значение цвета ввода идентификатора с @ серо- темнее? Как я могу запустить меньше funciton в браузере?

+0

почему вы хотите быть в .less кроме установить его на лету с jquery.css? просто чтобы обойти встроенный стиль? – longbow

+0

im, работающий над инструментом, который позволяет изменять меньше файлов ... У меня это меньше значения, и мне нужно отобразить результат этой меньшей функции. – prestarocket

+1

. Вам нужно будет создать действующий код меньше, чем этот материал, а затем передать этот код компилятор, а затем получить оценочное значение переменной с чем-то вроде [this] (https://github.com/less/less.js/issues/2597). Довольно сложный (не считая, что версия браузера компилятора в настоящее время не поддерживает плагины, поэтому вам нужно больше хаков), поэтому я предпочел бы дать эту функцию и/или переосмыслить нашу архитектуру приложений ... (в принципе, меньше нет предназначенный для такого рода динамических манипуляций с использованием основанных на использовании браузера/прецедентов ... Это прежде всего статический компилятор с меньшим CSS. –

ответ

1

Смотрите также: How to update variables in .less file dynamically using AngularJS

Пример:

<form id="colorform"> 
 
<input type="text" id="gray-base" value="#000"> 
 
<input type="text" id="gray-darker" disabled value=""> 
 
<input type="submit"> 
 
</form>  
 
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script> 
 
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/less.js/2.3.1/less.min.js"></script> 
 
<script> 
 
    $('#colorform').submit(function(e) 
 
    { 
 
     less.render('s {color: lighten(' + $('#gray-base').val() + ', 13.5%);}') 
 
     .then(function(output) { 
 
      
 
      var regExp = /(#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3}))/; 
 
      var matches = regExp.exec(output.css); 
 
      var lightcolor = matches[0]; 
 
      $('#gray-darker').val(lightcolor); 
 
      $('body').css('background-color',lightcolor); 
 
     }); 
 
     e.preventDefault(); 
 
    });   
 
</script>

+0

У меня также есть var с размером шрифта, высотой строки и т. Д. Я нашел решение: я пишу css-правила с псевдоэлементом (:: after) и добавляю значение меньшей переменной как контент – prestarocket

Смежные вопросы