我有这个代码:
<script type="text/javascript">
var snapper = new Snap({
element: document.getElementById('content'),
disable: 'right'
});
</script>
我希望它仅在窗口宽度小于或等于 768px 时运行/打开。我将如何使用 javascript 执行此操作?
谢谢
我有这个代码:
<script type="text/javascript">
var snapper = new Snap({
element: document.getElementById('content'),
disable: 'right'
});
</script>
我希望它仅在窗口宽度小于或等于 768px 时运行/打开。我将如何使用 javascript 执行此操作?
谢谢
使用window.onresize
事件。
window.onresize = function ()
{
if (window.innerWidth <= 768)
{
var snapper = new Snap({
element: document.getElementById('content'),
disable: 'right'
});
}
}
请注意,这只会在调整窗口大小完成时触发,并且您可能希望使用 jQuery$(window).width()
而不是纯 javascript ,因为它可能有点不稳定。另外,如果你想撤销你在上面的 if 语句中所做的事情,你需要附加一个else
带有适当代码的块。最后,如果优化符合您的要求,并且您希望避免运行不必要的代码(例如,如果窗口大小调整为 768 和随后的 700,则没有理由两次运行该块),您可能需要设置一个由andif
检查的标志 块(你的块会变成一个)以防止在不需要时创建一个新的。if
else if
else
else if
Snap
考虑使用modernizr 的媒体查询功能来确定是否要运行此代码。
您可以像在 CSS 中一样进行媒体查询,然后如果它是真的,运行您的代码。
if(Modernizr.mq('(max-width: 767px)'){
//your code
}
使用jquery,您应该能够获得窗口的宽度和高度
$(window).width();
$(window).height();
做你想做的事(如果你已经在使用 jquery)
$(window).resize(function() {
if ($(window).width() <= 768) {
//do your code
}
else {
//go back to normal
}
});
使用该window.innerWidth
属性来确定视口的宽度。请注意,这确实包括垂直滚动条。
if(window.innerWidth <= 768) {
// your code
}
来源:https ://developer.mozilla.org/en-US/docs/Web/API/window.innerWidth
请注意,该innerWidth
属性在 IE9 之前的 IE 版本中不可用;Safari 3 之前的 Safari;和 Opera 9 之前的 Opera。