2016-03-24 1 views
0

Ситуация: У меня есть таблица с разными цветами фона для каждой строки.
Проблема: Когда я сортирую строки по столбцу, я хотел бы немного затемнить каждый <td> из этой колонки на основе background-color строки. До сих пор у меня что-то вроде этого:Затеняет текущий фоновый цвет динамически с помощью AngularJS

<tr ng-repeat='row in rows' ng-class="rowClass(row)"> 
    <td ng-repeat=column in columns" 
     ng-style="{'background-color': (isSortedBy(column.key)) ? 'rgba(0, 0, 0, 0.05)' : ''}"> 
    {{column.text}} 
    </td> 
</tr> 

То, что я сейчас просто изменить цвет на серый (0,05 черного). Я не могу понять, как получить текущий цвет фона <td>, добавьте 0.05 черных над ним и примените новый background-color. В моем проекте я использую файлы sass, если это может помочь.

ответ

0

Я думаю, что было бы проще просто применить класс sorted, а затем сделать стилизацию с помощью CSS.

ng-class="{'sorted': (isSortedBy(column.key)) }

Легче поддерживать, если все стайлинг управляется через CSS.

Затем вы можете использовать SASS darken(), чтобы затемнить цвета для каждого столбца.

+0

Когда у меня 20 разных цветов bgackground, это не победитель игры. – Leo

+0

@Leo Не знаете, на что похожа ваша установка? Являются ли цвета каждого столбца рандомизированными/рассчитанными? Если нет, я обычно думаю, что лучше контролировать их с помощью CSS. Наличие JS влияет на внешний вид вещей, это сочетание обязанностей, в большинстве случаев. –

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