typescript iPhone Xの判定とbodyタグへのクラス追加·削除を行うIonic3,Angular2 +サービス
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript iPhone Xの判定とbodyタグへのクラス追加·削除を行うIonic3,Angular2 +サービス相关的知识,希望对你有一定的参考价值。
import { Injectable } from '@angular/core';
import { Platform } from 'ionic-angular';
const iPhoneX = { height: 2436, width: 1125 };
@Injectable()
export class NotchService {
constructor(
private platform: Platform,
) {}
init() {
(<any>window).addEventListener('orientationchange', () => {
console.log('orientationchange');
this.onOrientationChanged();
});
this.onOrientationChanged();
}
private onOrientationChanged() {
if (!this.platform.is('ios')) { return; }
const ratio = (<any>window).devicePixelRatio || 1;
const screen = {
width : (<any>window).screen.width * ratio,
height : (<any>window).screen.height * ratio,
};
const isiPhoneXPortrait = screen.width === iPhoneX.width && screen.height === iPhoneX.height;
const isiPhoneXLandscape = screen.width === iPhoneX.height && screen.height === iPhoneX.width;
console.log(screen);
console.log(`isiPhoneXPortrait = ${isiPhoneXPortrait}`);
console.log(`isiPhoneXLandscape = ${isiPhoneXLandscape}`);
if (isiPhoneXPortrait || isiPhoneXLandscape) {
(<any>document).body.classList.add('iPhoneX');
}
if (isiPhoneXPortrait) {
(<any>document).body.classList.remove('landscape');
(<any>document).body.classList.add('portrait');
} else if (isiPhoneXLandscape) {
(<any>document).body.classList.remove('portrait');
(<any>document).body.classList.add('landscape');
}
}
}
以上是关于typescript iPhone Xの判定とbodyタグへのクラス追加·削除を行うIonic3,Angular2 +サービス的主要内容,如果未能解决你的问题,请参考以下文章
ruby RubyでWindowsとUNIXの标准出力とエラー出力を抑止する
csharp System.Threading.Tasks.Taskの结果と例外のサンプル
text 20180320 idとclassの详细度
html RSSの取得と表示[HTMLで表示]
python HSVへの変换と青色の検出
python [Python] pathlibのglobとrglobのサンプル