Pul*_*Jet 9 animation android google-chrome angular-material2 angular
在运行棉花糖的Xperia M5上,即使在角度材料自己的网站上,角度材质对话框的开启动画也很糟糕.有没有办法我只能在移动设备上禁用对话框的动画?
我已经看过这个,但它建议禁用所有动画,CSS解决方案不起作用.
PS我正在运行Angular 5,一切都更新到稳定.
小智 -1
这就是我在 Android 设备上禁用对话框动画的方法。
\n\n我使用Ng2DeviceService来确定它是否是android设备。可以轻松修改以寻找其他条件。
\n\n这适用于 Angular 5。不确定旧版本。
\n\n我在 app.module.ts 中完成了这一切
\n\n添加进口
\n\nimport { AnimationDriver, \xc9\xb5WebAnimationsDriver, \xc9\xb5NoopAnimationDriver } from '@angular/animations/browser';\nRun Code Online (Sandbox Code Playgroud)\n\n创建动画工厂。
\n\n /**\n * Disable animations for dialogs on slow devices\n * @returns {WebAnimationsDriver}\n */\nconst animationFactory = () => {\n const deviceService = new Ng2DeviceService();\n const noop = AnimationDriver.NOOP;\n const driver = new \xc9\xb5WebAnimationsDriver();\n const originalAnimate = driver.animate;\n\n const isAndroid = deviceService.os === 'android';\n\n let disableComplexAnimations = false;\n if (isAndroid) {\n disableComplexAnimations = true;\n }\n\n driver.animate = (element: any, keyframes: {\n [key: string]: string | number;\n }[], duration: number, delay: number, easing: string, previousPlayers?: any[]) => {\n if (disableComplexAnimations && element && element.nodeName === 'MAT-DIALOG-CONTAINER') {\n return noop.animate(element, keyframes, duration, delay, easing, previousPlayers);\n } else {\n return originalAnimate(element, keyframes, duration, delay, easing, previousPlayers);\n }\n };\n return driver;\n};\nRun Code Online (Sandbox Code Playgroud)\n\n注册位于您的提供商列表中:
\n\n providers: [\n { provide: AnimationDriver, useFactory: animationFactory },\n ],\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1125 次 |
| 最近记录: |