混合stapel功能与magnific-popup

时间:2013-05-15 08:55:20

标签: javascript jquery magnific-popup

我在“Magnific Popup”中发现了两个非常棒的jquery插件和一个特殊的stapel功能“自动分组的自适应缩略图桩效果”,我想两者一起,我可以通过调整灯箱大小来制作一个非常酷(响应)的投资组合。

但不幸的是,他们并没有按照我的预期一起工作,因为你可以看到here

当您点击顶部图片并打开其中一个出现的图片时, 它将显示在灯箱中,但没有图像下方的关闭按钮和标题。 所以你必须回到“浏览器后退按钮”(不好)。

当你点击底部的一个小图片“没有stapel功能”时,图片会打开,关闭按钮和标题来自“magnific popup”。所以这里大胆的弹出工作正常。 现在,我没有找到为什么magnific-popup关闭按钮/标题不会出现在顶部的stapel功能图片。

由于我不是JS专业版,我只能猜测两个js-scripts之间可能存在冲突,因此我尝试添加“jQuery.noConflict();”但这只是猜测,并没有解决问题。

我希望,有人有个主意。

这是HTML标题中的JS内容:

<!-- Magnific Popup core CSS file -->
<link rel="stylesheet" href="css/magnific-popup.css"> 

<!-- jQuery 1.7.2+ or Zepto.js 1.0+ -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 

 <!-- Modernizr -->
<script src="js/modernizr.custom.63321.js"></script>

<!-- Magnific Popup core JS file -->
<script src="js/jquery.magnific-popup.js"></script> 

<!-- external Stapel JS file  -->
<script type="text/javascript" src="js/jquery.stapel.js"></script>

<!-- internal Stapel JS  -->    
<script type="text/javascript">

jQuery.noConflict();

$(function() {
    var $grid = $( '#tp-grid' ),
    $name = $( '#name' ),
    $close = $( '#close' ),
    $loader = $( '<div class="loader"><i></i><i></i><i></i><i></i><i></i><i></i><span>Loading...</span></div>' ).insertBefore( $grid ),
    stapel = $grid.stapel( {
    onLoad : function() {
    $loader.remove();
    },
    onBeforeOpen : function( pileName ) {
    $name.html( pileName );
    },
    onAfterOpen : function( pileName ) {
                        $close.show();
                    }
                } );

            $close.on( 'click', function() {
                $close.hide();
                $name.empty();
                stapel.closePile();
            } );

        } );
    </script>

在关闭body-Tag之前,这是JS for magnific-popup:

<script type="text/javascript"> 
$(document).ready(function() {

$('.popup').magnificPopup({
    type: 'image',
    closeOnContentClick: true,
    image: {
        verticalFit: false
    }
});

});

</script>

在链接中通过class =“popup”调用magnific-popup(在这里工作正常):

<a class="popup" href="http://farm9.staticflickr.com/8379/8588290361_ecf8c27021_b.jpg" title="This image fits only horizontally.">
<img src="http://farm9.staticflickr.com/8379/8588290361_ecf8c27021_s.jpg" height="75" width="75">
</a>

<a class="popup" href="http://www.marvin-online.de/test/images/print/large/logo-safework-1.jpg" title="Der Titel">  <img src="http://www.marvin-online.de/test/images/print/large/logo-safework-1.jpg" height="75" width="75"></a>

..并且这些图片不起作用:

<ul id="tp-grid" class="tp-grid">

<li data-pile="Logo">
    <a class="popup" href="http://www.marvin-online.de/test/images/print/large/visitenkartendesign-erbengemeinschaft.jpg">
<span class="tp-info"><span>Logo 1</span></span>
<img src="http://www.marvin-online.de/test/images/print/thumbs/visitenkartendesign-erbengemeinschaft.jpg" />
    </a>
</li>

<li data-pile="Logo">
    <a class="popup" href="http://www.marvin-online.de/test/images/print/large/logo-safework-1.jpg">
<span class="tp-info"><span>Logo 2</span></span>
<img src="http://www.marvin-online.de/test/images/print/thumbs/logo-safework-1.jpg" />
    </a>
</li>
</ul>

1 个答案:

答案 0 :(得分:0)

好的,我找到了一个解决方案:只需在Stapel的“onAfterOpen”回调函数中添加magnific插件的代码即可。 (很多人都是安德鲁 - 大卫!)