HostBinding не привязывается к переменной CSS

Я пытаюсь связать переменную в моем угловом компоненте с переменной внутри ключевого кадра CSS, который я использую для динамической анимации div. Я столкнулся с HostBinding как с потенциальным решением, однако я (думаю) правильно следовал объявлению, но анимация не работает при использовании переменных. Я использую angular 10.0.14, любая помощь приветствуется.

Это мой код css:

@keyframes swap{
  0%{background-color:red; left: var(--inX);} 
  100%{background-color: red; left: var(--finX);}
}

А вот это моя декларация HostBinding в component.ts:

@Component({
  selector: 'app-',
  templateUrl: './component.html',
  styleUrls: ['./component.css'],

})
export class Component implements OnInit {

  @HostBinding('style.--inX')
  private inX: string = '100px';
  
  @HostBinding('style.--finX')
  private finX:string = '200px';
}

🤔 А знаете ли вы, что...
CSS Grid Layout предоставляет средства для создания сложных сеточных макетов, таких как магазины сеток.


2
1 244
1

Ответ:

Решено

теперь с css что-то не так, но хостинг меняет имя пользовательской переменной css с --inX на --in-x.

поэтому для решения просто измените пользовательское имя переменной css на одно слово или --in-x

})
export class AppComponent {
  name = "Angular " + VERSION.major;

  @HostBinding("style.--start")
  private inX: string = "50px";

  @HostBinding("style.--end")
  private finX: string = "200px";
}

демонстрация stackblitz 🚀🚀

если вы хотите использовать стиль camelCase для имен переменных, вам нужно установить стиль непосредственно как объект, но я все же рекомендую предыдущее решение, потому что легко обновить одно свойство напрямую.

  @HostBinding("style")  private style = {
    '--intX':'100px',
    '--finX':'200px'
  }

демонстрация stackblitz 🌟🌟