Javascript 单击打开屏幕中央的图像

Javascript 单击打开屏幕中央的图像,javascript,jquery,html,css,Javascript,Jquery,Html,Css,所以我试着让我的画廊变得更好。我想当用户点击元素打开屏幕中间的图像。我确信有一种有效的方法可以通过添加类或其他东西来做到这一点。 我该怎么办 HTML <ul class="gallery"> <li> <img src="img/1.png" /> <div class="caption" onclick="view('1.png')"> &

所以我试着让我的画廊变得更好。我想当用户点击元素打开屏幕中间的图像。我确信有一种有效的方法可以通过添加类或其他东西来做到这一点。 我该怎么办

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:

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

功能视图(imgsrc){
viewwin=window.open(imgsrc,'viewwin','width=600,height=300');
}

我想我正好有你要找的东西

您可以查找一些css和示例

这就是神奇发生的地方:

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()
弹出窗口={
init:function(){
$('li')。单击(函数(){
打开($(此));
});
$(文档)。在('单击','上。弹出img',函数(){
返回false;
}).on('单击','弹出',函数()){
popup.close();
})
},
开放:功能($li){
$('.gallery').addClass('pop');
$popup=$('').appendTo($('body');
$fig=$li.clone().appendTo($('.popup'));
$bg=$('').appendTo($('.popup');
$close=$('').appendTo($fig);
$shadow=$('').appendTo($fig);
src=$('img',$fig).attr('src');
$shadow.css({backgroundImage:'url('+src+')')});
$bg.css({backgroundImage:'url('+src+')')});
setTimeout(函数(){
$('.popup').addClass('pop');
}, 10);
},
关闭:函数(){
$('.gallery.popup').removeClass('pop');
setTimeout(函数(){
$('.popup').remove()
}, 100);
}
}
popup.init()
这应该包括弹出逻辑

对于定心问题,您应该查看上面的链接并查看css文档

法比奥·奥塔维亚尼的工作做得很好


希望它有帮助:)

你可能想试试imgZoom,一个jQuery插件,可以轻松地将缩放功能集成到你当前的图像中:

为什么不使用这样的插件呢?请提供jsfiddle(或相关的)演示链接。试试这个:这个网页-有一个简单的教程,解释如何使用CSS和JavaScript制作一个插件,以及它是如何工作的。或者使用internet.JSFiddle中现成的插件,例如问题中所述的代码。