我有一个简单的图库,当我单击图像(尺寸在img标签中定义)时,应在屏幕中央打开它,然后将其调整为原始尺寸或其他定义的尺寸。现在,它只是使图像居中。 谢谢!
<style>
#img-cover {
position: absolute;
display:none;
top:0px;
left:0px;
width:100%;
height:100%;
background-color:black;
opacity:0.6;
z-index:9998;
}
#img-container {
position:fixed;
display:none;
top:50%;
left:50%;
margin-top:-50px;
margin-left:-100px;
z-index:9999;
}
</style>
<script>
$('.img').on('click', function (e) {
$('#img-cover').fadeIn();
var img = $(this);
$('#img-container').html(img.clone())
.css({
'margin-top': '-' + img.height() / 2 + 'px',
'margin-left': '-' + img.width() / 2 + 'px'
}).fadeIn();
});
$('#img-cover').on('click', function () {
$('#img-cover').fadeOut();
$('#img-container').fadeOut();
});
</script>
答案 0 :(得分:0)
使用.clone()有副作用。它产生具有重复id属性的元素。 id属性应该是唯一的。 假设您想向用户显示图库中的图像。 该网页将显示小尺寸图像。当用户单击图像时,页面将显示原始大小的图像。 Demo2就是这样做的。享受吧!
//
<!DOCTYPE html>
<!--
index.html
-->
<html>
<head>
<title>Image Gallery</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style type="text/css">
#img-cover {
position: absolute;
display: none;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
background-color: black;
opacity: 0.6;
z-index: 9998;
}
#img-container {
position: fixed;
display: none;
top: 50%;
left: 50%;
margin-top: -50px;
margin-left: -100px;
z-index: 9999;
}
#frame {
position: absolute;
display: none;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
background-color: gold;
opacity: 0.6;
z-index: 9997;
}
</style>
<script src="pathto/jquery/jquery-1.8.0.js"></script>
<script type="text/javascript" >
$(document).ready(function() {
$('.img4').on('click', function (e) {
$('#frame').fadeIn('slow');
$('#img-cover').fadeOut('slow');
$('#img-container').fadeOut('slow');
});
$('img').on('click', function (e) {
$('#img-cover').fadeIn();
var img = $(this);
$('#img-container').html(img.clone())
.css({
'margin-top': '-' + img.height()/2 + 'px',
'margin-left': '-' + img.width()/2 + 'px'
}).fadeIn();
});
$('#img-cover').on('click', function (){
$('#img-cover').fadeOut();
$('#img-container').fadeOut();
});
$('#btnReset').on('click', function (){
$('#frame').fadeOut();
});
});
</script>
</head>
<body>
<div class="img2">
<h1>Image Gallery2.</h1>
</div>
<div class="img3">
Demo1
<img src="pathto/images/myimage.jpg" height="110" width="110" alt="MyImage" />
</div>
<div id="img-container">
Image container.
</div>
<div id="img-cover">
Image cover.
</div>
<hr>
<div class="img4">
Demo2
<img src="pathto/images/myimage.jpg" height="110" width="110" alt="MyImage" />
</div>
<hr>
<div id="frame">
Demo3
<img src="pathto/images/myimage.jpg" alt="MyImage" />
<hr>
<input type="button" id="btnReset" value="Reset" />
</div>
</body>
</html>
//