【问题标题】:Run JS when screen width is this当屏幕宽度是这个时运行 JS
【发布时间】:2013-06-21 05:43:53
【问题描述】:

我有这个 js,我只想在屏幕大小为 800 或以下时运行,因为它支持滑动。请帮助我无法弄清楚。

var snapper = new Snap({
  element: document.getElementById('content')
});

并且 Snap 由

链接

感谢您的帮助。

编辑:

<script> 

            $(function() {
                var SmartMenu           = $('#SmartMenu');
                    MainMenu            = $('.MainMenu');

                    PortfolioMenu       = $('#Portfolio');
                    PortfolioSubMenu    = $('.subMenu');

                    SmartMenuOpen       = $('#SmartMenuOpen');
                    wrapperHeader   = $('.wrapperHeader-Top');

if(window.innerWidth <= 800) {
                        var snapper = new Snap({
  element: document.getElementById('W')
});
}


                $(SmartMenu).on('click', function(a) {
                    if( snapper.state().state=="left" ){
                    snapper.close();
                } else {
                    snapper.open('left');
                }
                });
</script>

【问题讨论】:

    标签: javascript load width screen


    【解决方案1】:
    if(window.innerWidth <= 800) {
       // Your code here
    }
    

    第一次应该可以解决问题。

    编辑 1: 如果您希望在调整浏览器大小时更改它

    window.onresize = function(event) {
      if(window.innerWidth <= 800) {
        // Your code here
      }
    }
    

    但请确保您包含的代码在调整浏览器大小时多次调用时能够正常工作。

    编辑 2 可以访问 jQuery:#2 支持 Snap API 并支持 init

    var snapper;
    
    function initSnapper() {
      if($(window).innerWidth() <= 800) {
        if(snapper === undefined) {
          snapper = new Snap({
            element: document.getElementById('W')
          });
        } 
        else {
          snapper.enable();
        }
      }
      else if(snapper !== undefined) {
        snapper.disable();
      }
    }
    
    
    $(window).resize(initSnapper);
    initSnapper();
    

    这将在页面加载时初始化 snapper,并在页面调整大小时调用 initSnapper。 在检查状态之前,您需要检查 snapper 是否存在

    if( snapper && snapper.state().state=="left" ){
      // snapper code
    }
    

    【讨论】:

    • 它几乎工作了,当我们低于 800 时它会运行它,但是在低于 800 之后再缩小到超过 800 时它不会关闭它,它会一直亮着,这是一个 Else 部分我们要补充吗?感谢您的帮助!
    • 你也在使用 jQuery 吗?如果是这样,我将不得不在 jQuery 中添加到我的帖子中
    • 更新了上面的例子
    • 这不是工作伙伴:/非常感谢您的帮助!不知道现在该怎么办
    • 这可能会帮助你帮助我:github.com/jakiestfu/Snap.js 这就是我用来制作滑动的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    相关资源
    最近更新 更多