简体   繁体   English

单击时,在屏幕中央打开图像

[英]On click open image in center of screen

So i tried to make my gallery more better. 所以我试图使我的画廊更好。 I want when user click on element to open image in the middle of the screen. 我想要当用户单击元素以在屏幕中间打开图像时。 I'm sure that there is efficient way to do this with adding class or something. 我敢肯定,添加类或某些东西是一种有效的方法。 What should i do ? 我该怎么办 ?

HTML HTML

    <ul class="gallery">
        <li>
            <img  src="img/1.png" />
            <div class="caption" onclick="view('1.png')">
                <div class="blur"></div>
                <div class="caption-text">
                    <h1>+</h1>
                </div>
            </div>
        </li>
        <li>
            <img  src="img/2.png" onClick="view('2.png');">
            <div class="caption">
                <div class="blur"></div>
                <div class="caption-text">
                    <h1>+</h1>
                </div>
            </div>
        </li>
    <ul>

Javascript: 使用Javascript:

<script type="text/javascript">
   function view(imgsrc) {
      viewwin = window.open(imgsrc,'viewwin', 'width=600,height=300'); 
   }
</script>

I think I have exactly what you are looking for. 我想我正是您要找的东西。

You can look for some css and an example here 您可以在此处查找一些CSS和示例

This is where the magic happens: 这就是魔术发生的地方:

popup = {
 init: function(){
  $('li').click(function(){
    popup.open($(this));
  });

$(document).on('click', '.popup img', function(){
  return false;
}).on('click', '.popup', function(){
  popup.close();
})
},
open: function($li) {
$('.gallery').addClass('pop');
$popup = $('<div class="popup" />').appendTo($('body'));
$fig = $li.clone().appendTo($('.popup'));
$bg = $('<div class="bg" />').appendTo($('.popup'));
$close = $('<div class="close"><svg><use xlink:href="#close"></use></svg></div>').appendTo($fig);
$shadow = $('<div class="shadow" />').appendTo($fig);
src = $('img', $fig).attr('src');
$shadow.css({backgroundImage: 'url(' + src + ')'});
$bg.css({backgroundImage: 'url(' + src + ')'});
setTimeout(function(){
  $('.popup').addClass('pop');
}, 10);
},
close: function(){
$('.gallery, .popup').removeClass('pop');
setTimeout(function(){
  $('.popup').remove()
}, 100);
}
}

popup.init()

This should cover the popup logic. 这应该涵盖弹出逻辑。

For the centering issue you should check out the link above and look at the css documentation 对于居中问题,您应该查看上面的链接并查看CSS文档。

Fabio Ottaviani 's work, nicely done. Fabio Ottaviani的工作做得很好。

Hope it helps :) 希望能帮助到你 :)

您可能想尝试imgZoom,这是一个jQuery插件,可轻松将缩放功能集成到当前图像中: http : //odyniec.net/projects/imgzoom/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM