我希望通过JavaScript应用媒体查询
i am looking to apply media queries through javascript
我想从左向右滑动菜单的div,我已经使用javascript完成了
<div id="script" style="height: 250px;">
<div class="slide">
<div id="div1" class="slide-item">
<p>Home</p>
</div>
</div>
<div class="slide">
<div id="div2" class="slide-item">
<p>About Us</p>
</div>
</div>
<div class="slide">
<div id="div3" class="slide-item">
<p>Events</p>
</div>
</div>
<div class="slide">
<div id="div4" class="slide-item">
<p>Register</p>
</div>
</div>
</div>
但是我不能用不同的媒体屏幕来做,我已经尝试过这个:
document.ready(function () {
if (screen.width <= 450) {
$("#div1").animate({ left: '100px' }, { duration: 500 });
}
else if (screen.width >= 451 && screen.width <= 700) {
$("#div1").animate({ left: '150px' }, { duration: 500 });
}
else (screen.width > 700)
{
$("#div1").animate({ left: '200px' }, { duration: 500 });
}
我也尝试过使用开关盒:
$(document).ready(function () {
switch ( varmql) {
case window.matchMedia("screen and (min-width: 450px)"):
$("#div1").animate({ left: '60px' }, { duration: 500 });
break;
case window.matchMedia("screen and (min-width: 451px) and (max-width:540px)"):
$("#div1").animate({ left: '80px' }, { duration: 500 });
break;
case window.matchMedia("screen and (min-width: 541px) and (max-width:768px)"):
$("#div1").animate({ left: '100px' }, { duration: 500 });
break;
case window.matchMedia("screen and (min-width: 769px) and (max-width:1024px)"):
$("#div1").animate({ left: '140px' }, { duration: 500 });
break;
case window.matchMedia("screen and (min-width: 1025px) and (max-width:1200px)"):
$("#div1").animate({ left: '160px' }, { duration: 500 });
break;
case window.matchMedia("screen and (min-width: 1201px) "):
$("#div1").animate({ left: '180px' }, { duration: 500 });
default
}
});
这样做,幻灯片项目根本不出现在屏幕上
查看 https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia matchMedia
的文档。
它返回一个"媒体查询列表",您必须在其上访问 matches
属性:
case window.matchMedia("screen and (min-width: 450px)").matches:
^^^^^^^^
我不知道varmql
是什么,但似乎你应该用true
代替它。
但正如一位评论者所提到的,您可能根本不需要这样做。您可以将 CSS 与媒体查询一起使用:
#div1 { transition: all 500ms; }
@media screen and (min-width: 450px) {
#div1 .animate { left: 60px; }
}
$(document).ready(function() {
$('#div1').addClass('animate');
});
或类似的东西。
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 触发媒体查询断点时刷新页面
- 媒体查询/matchMedia上的脚本
- 使用按钮和媒体查询切换显示状态
- 加载dom后禁用媒体查询
- 将语句与jquery相结合,并使用媒体查询来实现返回页首按钮
- 媒体查询与Javascript相结合
- 访问CSS媒体查询中的屏幕宽度和高度
- 使用媒体查询和angular更改移动设备中ng href的值
- 媒体查询和调整现成的网站
- 有没有一种方法可以修改在使用javascript的媒体功能的媒体查询下创建的样式
- 如何使用EnquireJS使AngularJS范围变量依赖于媒体查询
- @媒体查询在桌面浏览器中有效,而在移动浏览器中无效
- css媒体查询请求后刷新jQuery插件
- jQuery.thoggle()和媒体查询
- 使用媒体查询设置背景图像的不透明度
- 媒体查询:如何仅定位平板电脑
- 如何将垂直选项卡式内容面板更改为具有媒体查询和 jquery 的响应式可折叠面板
- 根据浏览器屏幕大小和媒体查询执行 php 代码
- CSS 媒体查询 - 最小设备宽度和最大设备宽度