如何在角度应用程序中允许用户更改字体大小?

时间:2019-06-06 09:01:54

标签: javascript angular typescript

如何使用户在角度应用程序中更改字体大小和字体,需要为每个用户进行不同的设置

2 个答案:

答案 0 :(得分:0)

您将拥有一个全局组成部分,其中每个人都是孩子,例如{ struct timespec delta = {5 /*secs*/, 135 /*nanosecs*/}; while (nanosleep(&delta, &delta)); } 。因此,在此处添加用户选择的字体,每个孩子都会继承它,例如

app-component

渲染的dom会像这样

@Component({
  selector: "app",
  template: `
    //YOUR PRESENTATION HERE
    `
})

export class AppComponent {
  @HostBinding("style.font.size")
  get userFontSize() {
    return _userFontSize;
  }

  @HostBinding("style.font.family")
  get userFontFamily() {
    return _userFontFamily;
  }

  _userFontFamily: string;
  _userFontSize: string;

  ngOnInit() {
    //Whenever you apply new value either fontsize or fontfamily, the value will be updated
    this._userFontSize = "20px";
    this._userFontFamily = "Sylfaen";
  }
}

答案 1 :(得分:0)

创建一个像<html> <body> <app style="font-size:20px;font-family:sylfaen"> </app> </body> </html> 这样的全局类。通过全局类,我的意思是在顶级DOM元素中存在的东西。您可以使用NgClass。这样,您在fs-11, fs-12, fs-13, fs-14中就可以做到了。

style.scss

然后,您可以使用.fs-11 { span,p { font-size: 11; } } .fs-12 { span,p { font-size: 12; } } 中的Subject来订阅字体大小已更改的事件。 This is a good tutorial for that.

然后,只要将font-size的值通过上面的Subject传递,并且每当有更改时,它将为您提供最新的值。

如果我有一些时间可以解决你已经发表的想法,那么我将举一个堆叠闪电的例子。

这是我正在工作的StackBlitz演示,如果您有任何问题,请告诉我。 https://stackblitz.com/edit/angular-qabs5k