我在点击时放大图像并移动它们,这样它们就不会离开页面。我有一个父背后的黑色图片,所以当我悬停时,我可以改变图片的不透明度,使它看起来像是变暗了。所有这一切都很好,但是,当我放大并移动照片时,会留下一个黑盒子。我需要它消失,但是当我尝试它时,孩子的照片也会消失。
这是代码,jsfiddle发布在
下面HTML
<div id="Gpic1">
<img class='galleryPics' id='pic1' src='http://i.imgur.com/urxD24P.jpg?1'>
</div>
CSS
#Gpic1 {
float: left;
width: 187px;
height: 280px;
margin-left: 5%;
display: inline-block;
background: black;
padding: 0;
}
#pic1{
width: 187px;
height: 280px;
}
.enlarged {
border: 10px solid #e5dbcc;
position: absolute;
-webkit-box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.75);
-moz-box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.75);
box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.75);`
}
JQUERY
$('#Gpic1').hover(function () {
if (!$(this).find('img').hasClass('enlarged')) {
$(this).find('img').fadeTo(500, 0.5);
}
}, function () {
$(this).find('img').fadeTo(500, 1);
});
$('#pic1').click(function () {
$(this).fadeTo(0, 1);
if ($(this).hasClass('enlarged')) {
$(this).removeClass('enlarged');
$(this).stop().animate({
width: 187,
height: 280
}, 0,
function () {
$(this).parent().removeClass('ontop');
});
} else {
$(this).addClass('enlarged')
$(this).parent().addClass('ontop');
$(this).stop().animate({
width: 533,
height: 800,
left: +590,
bottom: +50
}, 200);
}
});
答案 0 :(得分:0)
当您尝试删除#Gpic1
时,即使绝对定位,也会删除所有子项。
如果您只想让黑色背景消失,可以从包含div中删除黑色背景。
$("#Gpic1").css("background-color", "transparent");
或者,如果您确实要删除包含div,则需要将图像作为页面上某个其他对象的子图像。如果您正在使用绝对定位,那么您可以将图像设为身体对象的子项而不是#Gpic1,这样您就可以删除#Gpic1并且图像不会消失。
// move pic1 to be a child of the body so we can remove Gpic1
$("#pic1").appendTo(document.body);
$("#Gpic1").remove();
答案 1 :(得分:0)
在pic onClick事件
的动画结尾处添加此项$('#Gpic1').css('background','none');
这是一个小提琴。
答案 2 :(得分:0)
$('#Gpic1').css('background','none');