如何动态启用和禁用snap.js(由jakiestfu提供)

时间:2014-02-19 19:50:40

标签: jquery snapjs

我正在使用jquery来动态启用或禁用snap.js,如下所示:

$(window).resize(function () {
    if ($(window).width() < 1024) {
        snapper.enable();
    } else {
        snapper.disable();
    }
});

但这似乎不起作用。我认为这与不使用事件处理程序有关,但我不知道如何。

提前感谢!

编辑:

这似乎也不起作用:

addEvent(window, 'resize', function(){
     if ($(window).width() < 1024) {
        snapper.on('drag');
    } else {
        snapper.off('drag');
    }
    });

3 个答案:

答案 0 :(得分:1)

当视口大于1024px时,不要初始化snap.js.为什么持有对某个实例的引用,永远不会被使用?

或者:snapper.off('drag');

答案 1 :(得分:1)

你如何获得snapper变量?如果你在每次调整大小时都做了新的Snap - 这就是问题所在。您必须保存snapper

答案 2 :(得分:0)

我也有这个问题(snapper.disable();似乎没有做任何事情),这是我找到&#39;禁用&#39;的唯一方法,然后重新启用&# 39;,Snap导航是使用内置的ignore-this-area函数,然后使用css媒体查询来隐藏触发导航的按钮。

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

$(window).resize(function() {
    //initialise navigation
    if ($(window).innerWidth() >= 968) {
        $('body').attr('data-snap-ignore','true');
    } else {
        $('body').removeAttr('data-snap-ignore');
    }
});

这会禁用整个屏幕的拖动(但不是该功能),因此它会被有效隐藏。