Javascript:根据屏幕分辨率调用不同的函数

标签 javascript

我想根据屏幕分辨率调用两个不同的函数。我用这段代码做到了这一点,但是当用户更改宽度浏览器时参数不会改变。有人能帮我吗?这是代码:

var width=document.body.clientWidth;

function onresize(e) {
  
   width = e.target.outerWidth;
  
   console.log("width 1 is "+ width)
   
}
window.addEventListener("resize", onresize);

console.log("width is "+ width)

if(width>787){
  srcBtn.addEventListener("click", open)
  cls.addEventListener("click", closeBanner)
}else{
  srcBtn.addEventListener("click", divSearch)
}

最佳答案

将监听器分配包装到一个函数中(这也会删除旧监听器)。然后首先在初始化时调用该函数,然后在调整大小时调用该函数。

var width=document.body.clientWidth;
var srcBtn = document.getElementById('srcBtn');

function onresize(e) {
    width = document.body.clientWidth;
    console.log("width 1 is "+ width);
    setListeners();
}
window.addEventListener("resize", onresize);
console.log("width is "+ width);
setListeners();

function setListeners(){
    if(width>490){
        srcBtn.removeEventListener("click", divSearch);
        srcBtn.addEventListener("click", open);
//  cls.addEventListener("click", closeBanner);
    }else{
        srcBtn.removeEventListener("click", open);
        srcBtn.addEventListener("click", divSearch);
    }
}

function open () {
    console.log('open');
}
function divSearch () {
    console.log('divSearch');
}
<button id="srcBtn">click me</button>

关于Javascript:根据屏幕分辨率调用不同的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51945074/

相关文章:

javascript - 当我使用 Javascript 重新加载表单时,我无法保留之前保存的弹出表单数据 - jointJS

javascript - 根据值拆分数组

javascript - 从 jQuery 函数获取未定义的输出

javascript - select2 为每个选项手动设置选项属性

javascript - Facebook 点赞按钮

javascript - ExtJS 4.2 - 图表重绘,仍然看到旧标签

javascript - 由于滑动功能,UC 浏览器上的水平滚动不起作用

javascript - 是否值得为本地应用程序连接 javascript 文件(iBooks epub)

javascript - 在嵌套指令中使用工厂函数

javascript - js if(!value > 0) 数字输入验证错误返回