如何禁用elevateZoom?

时间:2015-08-17 10:16:13

标签: javascript jquery jquery-plugins

如何在elevateZoom中调用destroy函数?文档没有提及它,如果我在source中快速ctrl+f,我会看到disable的选项,但我不知道如何禁用或者毁掉elevateZoom?

我有以下代码:

HTML:

<img id="img_01" src="http://unilaboralgirona.com/wp-content/uploads/2015/03/ZContact.jpg" data-zoom-image="http://unilaboralgirona.com/wp-content/uploads/2015/03/ZContact.jpg"/> 

JS:

 $("img").elevateZoom({ zoomType    : "inner", cursor: "crosshair" , easing : true });

setTimeout(function(){}
      // how to destroy elevateZoom on image ? 
,2000); 

现在3秒后,我希望缩放功能不起作用(我这样做是为了隔离我的问题,现在请不要问一个反问题,为什么我这样做)。我在setTimeout()内部elevateZoom变得无法正常工作。

FIDDLE HERE

4 个答案:

答案 0 :(得分:6)

由于Elevate Zoom没有本机销毁,您必须执行以下操作:

setTimeout(function(){
      $.removeData($('img'), 'elevateZoom');
      $('.zoomContainer').remove();
},2000); 

这对我有用。希望这有帮助!

答案 1 :(得分:4)

您可以使用它。我需要在移动设备上关闭ElevatedZoom,因为Opencart有一个Gallerybox,人们可以通过两指滑动来轻松放大图像。所以...这就像一种魅力。

它很简单。如果无法禁用它,请尝试阻止它在适合您的条件下首先启动。 :-)

<script>
    if ($(window).width() > 769) { $('#zoom').elevateZoom(); }
</script>

答案 2 :(得分:2)

一个更好的解决方案内置于elevatezoom:

var ezApi = $('#primaryImage').data('elevateZoom');
ezApi.changeState('disable');

答案 3 :(得分:0)

它只是覆盖了一个缩放的 div,所以如果你想暂时禁用它,只需隐藏那个覆盖窗口,然后再显示它。

// Get rid of it
$('.zoomWindowContainer').hide();

// Return it later
$('.zoomWindowContainer').show();

至少在我的实例中工作过。