我正在使用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');
}
});
答案 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');
}
});
这会禁用整个屏幕的拖动(但不是该功能),因此它会被有效隐藏。