首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提升,缩放,激活和关闭点击?

提升,缩放,激活和关闭点击?
EN

Stack Overflow用户
提问于 2015-08-24 13:59:37
回答 2查看 4.6K关注 0票数 1

我正试图使elevate,变焦,jquery在单击而不是悬停时工作。我尝试过添加/删除类,但是我不知道如何在这种情况下加载带有延迟的jquery函数,我找到的所有帮助只是部分代码,没有冲突,所以我在这里非常迷惑。

我在上面发现的一件事是:

代码语言:javascript
复制
    $("button").click(function () {
    var imgUrl = $(this).data('rel');
    $("#area").html("<img class='test' src='" + imgUrl + "' data-zoom-image='" + imgUrl + "' />").hide().imagesLoaded(function () {
        $(this).fadeIn(500, function() {
            $(".test").elevateZoom({
                zoomType: "inner",
                cursor: "crosshair"
            });         
        });
    });
});

我是这样调整的:

代码语言:javascript
复制
 (function($)
{
$(document).ready(function () {
    $("#zoom_01").click(function () {
            $(this).fadeIn(500, function() {
                $("#zoom_01").elevateZoom({
                    zoomType: "inner",
                    cursor: "crosshair"
                });         
            });
    });
});
})(jQuery);

这很管用..。激活它,对吧。但我需要在之后的点击中禁用它。怎么才能做到呢?

我通常使用这样的方法,来激活点击,简单的类添加,但是在这里我似乎无法让它工作,因为我不知道只有在类被添加之后,而不是之前,我才知道如何触发电梯缩放功能。

(我单击“激活/停用”按钮的示例):

代码语言:javascript
复制
(function($)
{
$(".lightbox_clicker").click(function() {

  $(this).addClass("lightboxblur");
});

$(".lightbox").click(function() {

  $(".lightbox_clicker").removeClass("lightboxblur");
});
})(jQuery);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-24 14:31:30

嗨,我刚从网站上下载了演示程序,并修改了代码如下:

代码语言:javascript
复制
$(document).ready(function(){

    $('#zoom_01').on('click', function(){

        if( $('.enabled').length === 0){
            $('.zoomContainer').show();
            $('#zoom_01').elevateZoom({
            zoomType: "inner",
            cursor: "crosshair",
            zoomWindowFadeIn: 500,
            zoomWindowFadeOut: 750
           }); 
            $(this).toggleClass('enabled');
        }
        else{
            $(this).toggleClass('enabled');
            $('.zoomContainer').hide();
        }

   });
});

现在,这可以在单击上工作。所以我把你的代码放在这里。我希望这对你有用:

代码语言:javascript
复制
(function($){
$(document).ready(function () {

 $('#zoom_01').on('click', function(){

            if( $('.enabled').length === 0){
                $('.zoomContainer').show();
                $("#zoom_01").elevateZoom({
                    zoomType: "inner",
                    cursor: "crosshair"
                });         
                $(this).toggleClass('enabled');
            }
            else{
                $(this).toggleClass('enabled');
                $('.zoomContainer').hide();
            }

       });
});

})(jQuery);
票数 1
EN

Stack Overflow用户

发布于 2018-02-24 20:15:37

根据@Sahil的答案更新代码。避免在第一次单击之后重新启动elevateZoom会更有效。

代码语言:javascript
复制
$('#zoom_01').on('click', function() {
  if( $('.enabled').length === 0 ) {
    if( $('.zoomContainer').length ) {
      $('.zoomContainer').show();
      $(this).toggleClass('enabled');
    } else {
      $('#zoom_01').elevateZoom({
        zoomType: "inner",
        cursor: "crosshair",
        zoomWindowFadeIn: 500,
        zoomWindowFadeOut: 750
      }); 
    }
  } else{
    $(this).toggleClass('enabled');
    $('.zoomContainer').hide();
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32184213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档