使用JS编辑CSS媒体查询
Edit CSS media queries with JS
我需要通过JS设置背景大小。这是我目前的CSS代码,可以满足我的需求(根据方向无缝设置大小%)
background-size: 50%;
@media all and (orientation:landscape) {
background-size: auto 50%;
}
我需要更改上面代码中50%值的两个实例。现在我有这个
element.css("background-size", foo.toFixed(0) + '%');
此操作有效,但会放弃媒体查询。如何解决这个问题?
如果您只是检查方向变化,您可以使用:
window.addEventListener('orientationchange', doSomethingOnOrientationChange)
但是,如果你真的想检查是否触发了媒体查询,你可以使用Window.matchMedia()来监听媒体查询事件:
if (matchMedia) {
var mm = window.matchMedia("(orientation:landscape)");
mm.addListener(onMatchedMedia);
onMatchedMedia(mm);
}
function onMatchedMedia(mm) {
if(mm.matches){
el.style.backgroundSize = 'auto ' + foo.toFixed(0) + '%';
} else {
el.style.backgroundSize = foo.toFixed(0) + '%';
}
}
以下是使用max-width
的演示:http://jsfiddle.net/wxgs9g9s/
要添加一个条件来检查窗口大小是否为横向,可以使用:
if(window.innerHeight < window.innerWidth){
element.css("background-size", foo.toFixed(0) + '%');
}
如果您将其用于移动开发,我会查看jQuery移动库。
源
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 触发媒体查询断点时刷新页面
- 媒体查询/matchMedia上的脚本
- 使用按钮和媒体查询切换显示状态
- 加载dom后禁用媒体查询
- 将语句与jquery相结合,并使用媒体查询来实现返回页首按钮
- 媒体查询与Javascript相结合
- 访问CSS媒体查询中的屏幕宽度和高度
- 使用媒体查询和angular更改移动设备中ng href的值
- 媒体查询和调整现成的网站
- 有没有一种方法可以修改在使用javascript的媒体功能的媒体查询下创建的样式
- 如何使用EnquireJS使AngularJS范围变量依赖于媒体查询
- @媒体查询在桌面浏览器中有效,而在移动浏览器中无效
- css媒体查询请求后刷新jQuery插件
- jQuery.thoggle()和媒体查询
- 使用媒体查询设置背景图像的不透明度
- 媒体查询:如何仅定位平板电脑
- 如何将垂直选项卡式内容面板更改为具有媒体查询和 jquery 的响应式可折叠面板
- 根据浏览器屏幕大小和媒体查询执行 php 代码
- CSS 媒体查询 - 最小设备宽度和最大设备宽度