javascript - 使用放大弹出窗口无法加载图像

标签 javascript jquery magnific-popup

所以基本上我正在创建一种画廊,当它弹出时我收到一个错误:

The Image could not be loaded

我不知道我做错了什么,因为我包含了所需的所有 css 和 javascript 文件。这是我的 HTML:

<div class="gallery-item">
        <img class="popup" src="http://placehold.it/200x200" alt="">
        <a class="popup" href="http://placehold.it/200x200"><div class="item-overlay">
            <span><i class="fa fa-plus"></i></span>
        </div></a>
</div>

这是我的 JavaScript:

$(document).ready(function() {
    $('.popup').each(function() {
        $(this).magnificPopup({
            type: 'image',
            delegate: 'div',
            closeOnContentClick: false,
            closeBtnInside: false,
            mainClass: 'mfp-with-zoom mfp-img-mobile',
            image: {
                verticalFit: true,
                titleSrc: function(item) {
                    return item.el.attr('title') + ' &middot; <a class="image-source-link" href="'+item.el.attr('data-source')+'" target="_blank">image source</a>';
                }
            },
            gallery: {
                enabled: true
            },
            zoom: {
                enabled: true,
                duration: 300, // don't foget to change the duration also in CSS
                opener: function(element) {
                    return element.find('img');
                }
            }
            });
    });
});

JSFiddle:http://jsfiddle.net/roa59n2t/1/

最佳答案

因此,方法之一是将占位符图像包装在目标链接内,如下所示。

/** MY CODE **/
$('a.popup').magnificPopup({type: 'image' });
<link href="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.0.0/magnific-popup.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.0.0/jquery.magnific-popup.min.js"></script>
<div>
    <div class="gallery-item">
        <a class="popup" style="display: block" href="http://placehold.it/150x150"><img class="popup" src="http://placehold.it/150x150" alt="" /></a>
        <div class="item-overlay">
            <span><i class="fa fa-plus"></i></span>
        </div>
    </div>
    
    <div class="gallery-item">
        <a class="popup" style="display: block" href="http://placehold.it/200x200"><img class="popup" src="http://placehold.it/200x200" alt="" /></a>
        <div class="item-overlay">
            <span><i class="fa fa-plus"></i></span>
        </div>
    </div>
</div>

关于javascript - 使用放大弹出窗口无法加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30624244/

相关文章:

javascript - 非常简单的问题| JavaScript setTimeout 失败

javascript - 点击时结合 jQuery

javascript - html输入末尾有一个不可去除的问号

javascript - 华丽的弹出窗口 - 忽略图库中的图像

css - 如何使用 Magnific Popup 的 open() 方法放大图像

php - 加载 WordPress 帖子而不使用 get_header() 和 get_footer()

javascript - 如何将 jQuery 添加到在 Paypal 对象之前触发的提交按钮?

javascript - 如何从对象内部调用类函数?

javascript - jQuery 读取的 CSS 与 jQuery 设置的 CSS 不对应

无法访问 Javascript 变量