关于 javascript:Scale 与 Angular2 成比例 | 珊瑚贝

Scale proportionally with Angular2


我需要在 Angular2 应用程序中实现一个保留缩放比例的部分(例如将 youtube 视频嵌入网站时)。我不能使用 iframe,因为它会使传递数据变得非常复杂。

这是一个使用 jQuery 解决方案的示例:
https://css-tricks.com/scaled-proportional-blocks-with-css-and-javascript/

在 codepen 中,缩小外框将显示所需的功能:
https://codepen.io/chriscoyier/pen/VvRoWy

1
2
3
4
5
// from original article:
var scale = Math.min(
  availableWidth / contentWidth,
  availableHeight / contentHeight
);

在 Angular2 中是否有比在 jQuery 中混合更好的方法呢?我看到了一些库,但遗憾的是没有演示功能。欢迎任何建议。谢谢

  • 也许这是一个有用的想法,但您已经尝试使用视口单位(vh 和 vw)?
  • 我实际上已经对这种技术如何工作进行了很多思考(但从未想出一个好主意)。虽然这看起来很有趣:hackernoon.com/ 但我想知道它是否被认为是最佳实践,我想只要断点在不同的设备上正确显示,那么应该没有问题吗?


我已经将 jQuery 解决方案 (https://css-tricks.com/scaled-proportional-blocks-with-css-and-javascript) 中的代码”翻译”到了 Angular。

查看这个堆栈闪电战:https://stackblitz.com/edit/angular-vagpoq。我还在代码中包含了带有解释的注释。

  • 哇看起来很棒!我在尝试实施到我的应用程序时遇到的唯一问题是 cannot read property nativeElement of undefined。我想这可能与此有关:stackoverflow.com/a/43384002/1624933,但即使使用长超时和 ngAfterViewInit 生命周期,它仍然无法识别它!我还不得不将 window.Math 更改为只是 Math 因为它说 Math 在类型窗口上不存在
  • 感谢您的积极反馈。你能分享一下你的代码堆栈闪电战吗?让我们一起经历
  • 嗨,感谢您的帮助,不幸的是,我无法使用我的示例进行此操作,由于嵌套组件,它变得非常复杂,但导致了一些关于生命周期和 ViewChild 的有趣阅读,而不是 ViewChildren。我的朋友设法让它使用未针对 Angular 进行修改的原始代码。但是,您的解决方案确实适用于更简单的集成,因此我已将其作为公认的答案。再次感谢
  • @timhc22 感谢您的积极反馈。令人耳目一新。不过我很好奇,你朋友的解决方案是否需要添加 jQuery?
  • 不,他的解决方案并不完整,因为它只在屏幕加载时调整大小(这对我们的需要来说很好)!


来源:https://www.codenong.com/58979088/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?