Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 媒体查询动态激活/禁用加载脚本并调整窗口大小_Css_Resize_Window_Media Queries - Fatal编程技术网

Css 媒体查询动态激活/禁用加载脚本并调整窗口大小

Css 媒体查询动态激活/禁用加载脚本并调整窗口大小,css,resize,window,media-queries,Css,Resize,Window,Media Queries,我正在使用JS砌体网格。我想禁用移动版本宽度小于800px的脚本 我正在尝试下一个代码: window.addEventListener('resize', function(){ if(window.innerWidth > 800){ ...execute script } }); 所有JS代码 window.addEventListener('resize', function(){ if(window.innerWidth > 900){

我正在使用JS砌体网格。我想禁用移动版本宽度小于800px的脚本

我正在尝试下一个代码:

window.addEventListener('resize', function(){
    if(window.innerWidth > 800){
        ...execute script
    }
});
所有JS代码

window.addEventListener('resize', function(){
  if(window.innerWidth > 900){    

    /* @license minigrid v1.6.0 - minimal cascading grid layout http://alves.im/minigrid */
    !function(t){"use strict";function e(t,e,n,o,r){var i=Array.prototype.forEach,f=t instanceof Node?t:document.querySelector(t);if(!f)return!1;var s=f.querySelectorAll(e);if(0===s.length)return!1;n="number"==typeof n&&isFinite(n)&&Math.floor(n)===n?n:6,f.style.width="";var u=f.getBoundingClientRect().width,l=s[0].getBoundingClientRect().width+n,a=Math.max(Math.floor((u-n)/l),1),c=0;u=l*a+n+"px",f.style.width=u,f.style.position="relative";for(var d=[],p=[],h=0;a>h;h++)p.push(h*l+n),d.push(n);i.call(s,function(t){var e=d.slice(0).sort(function(t,e){return t-e}).shift();e=d.indexOf(e);var r=p[e],f=d[e],s=["webkitTransform","MozTransform","msTransform","OTransform","transform"];return t.style.position="absolute",o||i.call(s,function(e){t.style[e]="translate("+r+"px,"+f+"px)"}),d[e]+=t.getBoundingClientRect().height+n,c+=1,o?o(t,r,f,c):void 0});var m=d.slice(0).sort(function(t,e){return t-e}).pop();f.style.height=m+"px","function"==typeof r&&r(s)}"function"==typeof define&&define.amd?define(function(){return e}):"undefined"!=typeof module&&module.exports?module.exports=e:t.minigrid=e}(this);

    (function(){
        minigrid('.grid', '.grid-item');

        window.addEventListener('resize', function(){
          minigrid('.grid', '.grid-item');
        });
      })();        
  }
});
我对此有两个问题: 1在加载页面时不起作用,仅在调整窗口大小时起作用。
当我从>800更改为时,2不起作用。您的脚本仅通过窗口调整大小事件调用,以便在您应该使用的页面加载时执行它

window.onload = function() {
    //your code 
}
更新:

var oldWidth;

window.addEventListener('resize', function(e){
    if(window.innerWidth > 800 || oldWidth > 800){
        try {
            minigrid('.grid', '.grid-item');
        } catch(e) {
            loadLib();
            minigrid('.grid', '.grid-item');
        }

        oldWidth = window.innerWidth;
    }
});

window.onload = function() {
    minigrid('.grid', '.grid-item');
    oldWidth = window.innerWidth;
}

function loadLib() {
    // minigrid code
}

感谢艾哈迈德·赛义德的帮助。问题是,如果我只使用window.onload,那么当我调整窗口大小时,它就不起作用了。此外,它也不能解决当我通过>800时禁用脚本的问题,如果您同时保留两个侦听器,加载和调整大小,那么它应该在这两种情况下都能工作。当您通过>800再次感谢您时。我尝试过新代码,但我认为它不起作用,总是加载JS。是的,您的代码中有一个额外的窗口大小调整侦听器,我之前没有注意到,请检查Ahmed Sayed,非常感谢您为帮助我所做的努力,但恐怕它仍然不起作用。在代码笔链接中,仍然始终加载脚本。