javascript - Safari 忽略 Javascript 媒体查询
问题描述
我有一个导航栏,其高度为 70 像素,宽度高于 643 像素,或低于其 100% 的高度。这是javascript:
function openNav() {
document.getElementById('myNav').style.height = '70px';
document.getElementById('myNav').style.opacity = '100%';
}
function closeNav() {
document.getElementById('myNav').style.height = '0%';
document.getElementById('myNav').style.opacity = '0%';
}
if (screen.width <= 643) {
function openNav() {
document.getElementById('myNav').style.height = '100%';
document.getElementById('myNav').style.opacity = '100%';
}
function closeNav() {
document.getElementById('myNav').style.height = '0%';
document.getElementById('myNav').style.opacity = '0%';
}
}
我知道这个 javascript 运行正常,因为它可以在桌面和移动设备上的不同浏览器上运行。然而,在 Safari 中,此媒体查询被忽略,并且一直以 100% 的高度打开(无论是在桌面设备上还是在移动设备上)。
我也尝试使用 window.matchMedia,包括这里给出的解决方案:Safari ignore window.matchMedia
我没有成功让它在 Safari 上运行。
如果您想看到它的实际效果,这是我正在开发的网站:https ://jh-portfolio-test-2.blogspot.com/
解决方案
推荐阅读
- java - 将外键连接到中间实体
- ruby-on-rails - Ruby on Rails - 想要使用自动生成的时间戳创建表
- java - 如何将 ISO 代码转换为 MySQL 表中的国家/地区名称?
- java - 在java中将'return'关键字放在哪里?
- postgresql - PostgreSQL 外部事务功能
- windows - 谁能解释一下这个平面汇编代码是如何工作的?
- python - Python,Matplotlib:当x为时间时如何设置轴范围?
- javascript - 我如何才能解决 serialport nodejs 包使用的承诺
- javascript - 使用时刻舍入到下一个第一个或第三个星期一
- javascript - 椭圆的计算点的意外结果