Javascript:如果屏幕打开则更改属性在三星上不起作用。想法如何解决这个问题?

标签 javascript android screen-orientation samsung-mobile

大家好,我有这个小代码,如果我旋转手机,它会改变我的宽度。

window.addEventListener("orientationchange", function() {

  if (window.matchMedia("(orientation: portrait)").matches) {

document.getElementById("iframe-startpage-mobile").style.width ="90%";
document.getElementById("iframe-startpage-mobile").style.marginLeft ="5%";
    } else {
        document.getElementById("iframe-startpage-mobile").style.width ="100%";
        document.getElementById("iframe-startpage-mobile").style.marginLeft ="0%";
    }

  }, false);

它在我的 Android 小米红米 Note 4 上完美运行(在 Chrome 和 Firefox 中运行),但在我的三星 Galaxy S8 上无法运行(不适用于 Chrome 或三星浏览器)。知道我该如何解决这个问题吗?

最佳答案

到底出了什么问题? orientationchange 事件是否未触发,或者 matchMedia 查询返回了错误的结果?

我没有机会在三星手机上进行测试,但有一些一般的解决方法:

方向改变

您可以将其替换为window.onresize。只是要小心,不要在该处理程序上做繁重的工作(或者至少对其应用诸如去抖之类的东西),它在调整大小时会不断被调用。

匹配媒体

您可以通过以下方式获得类似的结果:

function is_landscape() {
   return (window.innerWidth > window.innerHeight);
}

关于Javascript:如果屏幕打开则更改属性在三星上不起作用。想法如何解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53174103/

相关文章:

javascript - 如何在使用 webpack 编译期间将文件文本导入到 javascript 中的变量中?

javascript - 一页中的 jquery 表单验证和 php 脚本

javascript - 在 chrome 上删除元素时,Aria-live 区域不会读出更新

android - 方法 XYZ 的代码超出了 65535 字节限制

android - 在 Activity 开始期间优雅地处理屏幕方向变化

android - 如何避免旋转时重新创建 Activity,同时尊重方向锁定?

javascript - 图像未显示在 Canvas 上

android - GridLayoutManager setSpanSizeLookup 不工作

java - 如何在我的 Recycler View 的寻呼机上显示点?

iphone - iOS:从多任务栏恢复应用程序时如何保持方向?