仅当宽度大于 x 像素时才执行 javascript 代码
Execute javascript code ONLY if width is higher than x pixels
我试图仅在宽度大于 1200 像素时才执行 javascript 函数。
我需要执行的代码有效,但屏幕尺寸检查无效:
window.addEventListener("resize", function(){
if (document.documentElement.clientWidth > 1203) {
<<<some other code that's working>>>
}
}, true);
所有这些代码都在 document.ready 函数之外的 javascript 文件中。
编辑:当您拖动屏幕 window 时,它不像正常的 css 查询那样工作。这就是问题。如果您刷新页面,它会起作用,但如果您更改浏览器的宽度,则它不会调整,它需要立即重新加载。
这是我的问题。
问题是 true
您传递给 addEventListener。
请参阅此处的 useCapture
部分:EventTarget.addEventListener
Events which are bubbling upward through the tree will not trigger a listener designated to use capture
所以你想要:
window.addEventListener("resize", function(){
if (document.documentElement.clientWidth > 1203) {
<<<some other code that's working>>>
}
}, false); <----change here
您可以使用 jQuery 来实现此目的
$( window ).resize(function() {
console.log($( window ).width());
var windowwidth = $( window ).width();
if (windowwidth > 500) {
console.log("Greater than 500");
/*Do your work here*/
}
});
您需要添加一个 else
子句才能获得您想要的行为。否则,如您所述,调整大小事件将仅以一种方式起作用。
window.addEventListener("resize", function(){
// fire when above 1203
if (document.documentElement.clientWidth > 1203) {
console.log('Greater!');
}
// fire when below 1203
else {
console.log('Smaller!');
}
}, true);
这是 planet260
写的固定 jsfiddle 的 link:http://jsfiddle.net/4dnemh2j/4/
这里又是我的例子:https://jsfiddle.net/9n5hmpua
我试图仅在宽度大于 1200 像素时才执行 javascript 函数。
我需要执行的代码有效,但屏幕尺寸检查无效:
window.addEventListener("resize", function(){
if (document.documentElement.clientWidth > 1203) {
<<<some other code that's working>>>
}
}, true);
所有这些代码都在 document.ready 函数之外的 javascript 文件中。
编辑:当您拖动屏幕 window 时,它不像正常的 css 查询那样工作。这就是问题。如果您刷新页面,它会起作用,但如果您更改浏览器的宽度,则它不会调整,它需要立即重新加载。
这是我的问题。
问题是 true
您传递给 addEventListener。
请参阅此处的 useCapture
部分:EventTarget.addEventListener
Events which are bubbling upward through the tree will not trigger a listener designated to use capture
所以你想要:
window.addEventListener("resize", function(){
if (document.documentElement.clientWidth > 1203) {
<<<some other code that's working>>>
}
}, false); <----change here
您可以使用 jQuery 来实现此目的
$( window ).resize(function() {
console.log($( window ).width());
var windowwidth = $( window ).width();
if (windowwidth > 500) {
console.log("Greater than 500");
/*Do your work here*/
}
});
您需要添加一个 else
子句才能获得您想要的行为。否则,如您所述,调整大小事件将仅以一种方式起作用。
window.addEventListener("resize", function(){
// fire when above 1203
if (document.documentElement.clientWidth > 1203) {
console.log('Greater!');
}
// fire when below 1203
else {
console.log('Smaller!');
}
}, true);
这是 planet260
写的固定 jsfiddle 的 link:http://jsfiddle.net/4dnemh2j/4/
这里又是我的例子:https://jsfiddle.net/9n5hmpua