[英]lightbox does not work properly
I need to show a lightbox by clicking on a link. 我需要通过点击链接来显示灯箱。 The issue is once the lightbox is shown I should click on the lightbox buttons or change the screen-size to see the images.
问题是一旦显示灯箱,我应该单击灯箱按钮或更改屏幕大小以查看图像。 It seems like the images wont get loaded once the link is clicked.
单击链接似乎无法加载图像。
<!DOCTYPE html>
<html lang="en">
<head>
<title>slick - the last carousel you'll ever need</title>
<link href='http://fonts.googleapis.com/css?family=Lato:400,700' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="http://kenwheeler.github.io/slick/slick/slick.css"/>
<link rel="stylesheet" type="text/css" href="http://kenwheeler.github.io/slick/slick/slick-theme.css"/>
<link rel="stylesheet" type="text/css" href="http://kenwheeler.github.io/slick/css/style.css">
<link rel="stylesheet" type="text/css" href="http://kenwheeler.github.io/slick/css/prism.css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0">
<script src="http://cdnjs.cloudflare.com/ajax/libs/modernizr/2.7.1/modernizr.min.js" type="text/javascript"></script>
<style>
#pageOverLay {
background: #fff none repeat scroll 0 0;
margin-left: 43%;
margin-top: 10%;
position: absolute;
width: 500px;
z-index: 1001;
display:none;
}
#pageOverLay-shadow {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #000;
filter: alpha(opacity=75);
-moz-opacity: 0.75;
-khtml-opacity: 0.75;
opacity: 0.75;
z-index: 1000;
display: none;
}
#pageOverLayCloseBtn{
position:absolute;
top:0;
right:0;
}
.slick-slider {
margin: 30px auto 50px;
}
.slick-slider {
-moz-user-select: none;
box-sizing: border-box;
display: block;
position: relative;
}
</style>
</head>
<body>
<a onclick="showLightBox();" href="#">Click Here to show lightbox</a>
<div id="pageOverLay-shadow"></div>
<div id="pageOverLay">
<div id="pageOverLayCloseBtn"><a href="#" onclick="pageOverLayClose();">X</a></div>
<h2>Images</h2>
<div class="slider fade">
<div><div class="image"><img src="http://wowslider.com/sliders/demo-94/data1/images/photo1427806208781b36531cb09ef.jpg"/></div></div>
<div><div class="image"><img src="http://wowslider.com/sliders/demo-94/data1/images/photo142855067022515f007f6f1ba.jpg"/></div></div>
<div><div class="image"><img src="http://wowslider.com/sliders/demo-94/data1/images/photo1428452788387375d846a8ab4.jpg"/></div></div>
</div>
</div>
<script src="view-source:http://kenwheeler.github.io/slick/code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="view-source:http://kenwheeler.github.io/slick/code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript" src="http://kenwheeler.github.io/slick/slick/slick.js"></script>
<script type="text/javascript" src="http://kenwheeler.github.io/slick/js/scripts.js"></script>
<script type="text/javascript" src="http://kenwheeler.github.io/slick/js/prism.js"></script>
<script type="text/javascript">
function showLightBox(){
$("#pageOverLay-shadow").css("display","block");
$("#pageOverLay").css("display","block");
}
function pageOverLayClose(){
$("#pageOverLay-shadow").css("display","none");
$("#pageOverLay").css("display","none");
}
var disqus_shortname = 'slickcarousel';
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
</body>
</html>
The css-attribute display:none; css属性显示:无; on div does the browser prevent from render or even load the image inside that element.
在div上,浏览器是否阻止渲染或什至在该元素内加载图像。 There is a good explanation: Does “display:none” prevent an image from loading?
有一个很好的解释: “ display:none”会阻止图像加载吗?
Just exchange "display: none;" 只需交换“显示:无;” with "visibility:hidden;"
具有“可见性:隐藏;” and update your JavaScript -> see below.
并更新您的JavaScript->参见下文。
CSS: CSS:
#pageOverLay {
background: #fff none repeat scroll 0 0;
margin-left: 43%;
margin-top: 10%;
position: absolute;
width: 500px;
z-index: 1001;
visibility:hidden;
}
#pageOverLay-shadow {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #000;
filter: alpha(opacity=75);
-moz-opacity: 0.75;
-khtml-opacity: 0.75;
opacity: 0.75;
z-index: 1000;
visibility: hidden;
}
JS/jQuery: JS / jQuery的:
...
function showLightBox() {
$("#pageOverLay-shadow").css("visibility", "visible");
$("#pageOverLay").css("visibility", "visible");
}
...
I updated the jsfiddle: http://jsfiddle.net/dm3Lea95/4/ (fixed also the "close" button ;)) 我更新了jsfiddle: http : //jsfiddle.net/dm3Lea95/4/ (还修复了“关闭”按钮;))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.