关于viewer.js的问题 图片查看时如何设置居中

viewer-- A simple jQuery image viewing plugin.
Viewer v0.5.1
Viewer.js – 强大的JS/jQuery图片查看器
根据以上资料自己做了个demo。
由于工作需要,要在bootstrap的modal层里应用viewer,遇到的问题是:
在modal层里应用viewer无法居中,如图:
图片描述
图片描述
ps:这个modal层相对较长.
ps:不显示在modal层中时是正常的,如下图:
图片描述

请问,该如何设置使预览放大的照片在modal内居中?

代码:jsfiddle 点击查看(注:viewer的效果没有,在线调试中引入的文件不起作用)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>viewer.js图片查看器插件</title>
    <link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="plugin/viewer/css/viewer.css">
</head>

<body>
    <span id="btn" class="btn btn-default" data-title="add"><i class="fa fa-minus-square"></i> 弹框</span>
    <div class="modal fade" id="modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" data-backdrop="static" data-keyboard="false">
        <div class="modal-dialog modal-lg" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                    <h4 class="modal-title" id="myModalLabel"><i class="fa fa-pencil-square-o"></i> 图片上传</h4>
                </div>
                <div class="modal-body">
                    <ul id="docs-pictures">
                        <li>
                            <div> <img data-original="img/hgtrh.jpg" src="img/thumbnails/hgtrh.jpg"></div>
                        </li>
                        <li><img data-original="img/imagfrefrewfes (3).jpg" src="img/thumbnails/imagfrefrewfes (3).jpg"></li>
                        <li><img data-original="img/20160918105709.jpg" src="img/thumbnails/20160918105709.jpg"></li>
                        <li><img data-original="img/fewfef.jpg" src="img/thumbnails/fewfef.jpg"></li>
                        <li><img data-original="img/apic14052.jpg" src="img/thumbnails/apic14052.jpg"></li>
                        <li><img data-original="img/images (2).jpg" src="img/thumbnails/images (2).jpg"></li>
                        <li><img data-original="img/vfegvreg.jpg" src="img/thumbnails/vfegvreg.jpg"></li>
                        <li><img data-original="img/images.jpg" src="img/thumbnails/images.jpg"></li>
                        <li><img data-original="img/20160918132119.jpg" src="img/thumbnails/20160918132119.jpg"></li>
                    </ul>

                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal"><i class='fa fa-times'></i> 关闭</button>
                </div>
            </div>
        </div>
    </div>

    <ul id="pictures">
        <li>
            <div> <img data-original="img/hgtrh.jpg" src="img/thumbnails/hgtrh.jpg"></div>
        </li>
        <li><img data-original="img/imagfrefrewfes (3).jpg" src="img/thumbnails/imagfrefrewfes (3).jpg"></li>
        <li><img data-original="img/20160918105709.jpg" src="img/thumbnails/20160918105709.jpg"></li>
        <li><img data-original="img/fewfef.jpg" src="img/thumbnails/fewfef.jpg"></li>
        <li><img data-original="img/apic14052.jpg" src="img/thumbnails/apic14052.jpg"></li>
        <li><img data-original="img/images (2).jpg" src="img/thumbnails/images (2).jpg"></li>
        <li><img data-original="img/vfegvreg.jpg" src="img/thumbnails/vfegvreg.jpg"></li>
        <li><img data-original="img/images.jpg" src="img/thumbnails/images.jpg"></li>
        <li><img data-original="img/20160918132119.jpg" src="img/thumbnails/20160918132119.jpg"></li>
    </ul>
    <script type="text/javascript" src='js/jquery-2.0.2.min.js'></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="plugin/viewer/js/viewer.js"></script>
    <script>
        $('#docs-pictures,#pictures').viewer();
        $('body').on('click', '#btn', function () {
                $('#modal').modal('show');
        });
    </script>
</body>

</html>

ps:页面效果不好看,请自行忽略

阅读 10.4k
2 个回答

这个问题已经解决了

公司的同事给帮忙解决的。

直接在$('#modal').viewer();
而不是用图片的id : $('#docs-pictures').viewer();

确实有问题。没找到什么好的方案。我试了一种方法,把modal的内容clonebody里,然后在body里调用viewer就可以了。

   $('body').append($(document.getElementById('dowebok')).clone().attr('id','testid').hide());
    var viewer = new Viewer(document.getElementById('testid'), {
        url: 'data-original'
    });
    viewer.show();

你改改看看能不能使用吧。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏