亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Better Way to Use orientationchange Event on Mobil

Julylovin / 570人閱讀

Preface

When I was using orientationchange event, I met a few bugs. So, I take it down.

Main compatibility problem

When I was testing my code on my android, it was ok. However, it doesn"t work on my boss"s iPhone6. So, i have to change the code.

The origin code was like:

  
html,
body {
  width: 100%;
  height: 100%;
}

.box {
  width: 100%;
  height: 100%;
  background: pink;
}

.box.landscape {
  background: lightblue;
}
let box = document.getElementById("box")
window.addEventListener("orientationchange", orientationChangeCb)
function orientationChangeCb(event) {
  let isLand = isLandscape()
  if (isLand) {
    box.classList.add("landscape")
  } else {
    box.classList.remove("landscape")
  }
}
function isLandscape() {
  if ("orientation" in window) {
    return Math.abs(window.orientation) === 90
  } else {
    return window.innerWidth > window.innerHeight
  }
}

To be compatible with iPhone6, I use resize event instead.

However, the better way I think is :

let eventForOrientationChange =
  "onorientationchange" in window ? "orientationchange" : "resize"
if (isMobile()) {
  window.addEventListener(eventForOrientationChange, orientationChangeCb)
}
isMobile ?

Because onorientationchange is a mobile event, so if you try to run code below on your computer with chrome, you will get:

window.onorientationchange //undefined
"onorientationchange" in window //false

It seems a little weird but it"s true until chrome 69. That"s why I add isMobile() before I use window.addEventListener. In that case, we don"t have to listen for the resize event on desktop.

window.orientation or screen.orientation

According to mdn, window.orientation has been Deprecated. However, similar API screen.orientation has a big problem for compatibility. Safari and QQ doesn"t support. As of 2018.10.4, global support in caniuse is only 72.5%.

css only

If you just want to update style, you don"t have to use code above. CSS media queries
support code like:

@media (min-height: 680px), screen and (orientation: portrait) {
  /* ...; */
}
@media (min-height: 680px), screen and (orientation: landscape) {
  /* ...; */
}

Original Post

Reference

detect viewport orientation, if orientation is portrait display alert message advising user of instructions

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://www.ezyhdfw.cn/yun/99377.html

相關文章

  • 移動web開發(fā)小貼示

    摘要:可以通過來自動隱藏瀏覽器地址欄??墒菍挾?,初始化縮放比例,允許用戶縮放的最大比例,允許用戶縮放的最小比例,是否允許用戶縮放。允許用戶添加到主屏幕,并提供的支持。當用時候,不能使用偽類,否則滑動會卡。 阻止彈性滾動 functionBlockMove(event){ //Tell Safari not to move the window. event.preventDefault();...

    snowLu 評論0 收藏0
  • 移動web開發(fā)小貼示

    摘要:可以通過來自動隱藏瀏覽器地址欄。可是寬度,初始化縮放比例,允許用戶縮放的最大比例,允許用戶縮放的最小比例,是否允許用戶縮放。允許用戶添加到主屏幕,并提供的支持。當用時候,不能使用偽類,否則滑動會卡。 阻止彈性滾動 functionBlockMove(event){ //Tell Safari not to move the window. event.preventDefault();...

    CoderDock 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<