2011-10-05 21 views
0

我想制作一个悬停效果来反弹一个图标,但在下面有一个固定的阴影。 所以我使用Jquery悬停和动画边缘顶部。 发生了什么情况:图像块在更改边缘顶部时拖动阴影 如何修复阴影位置?CSS属性margin-top:使用Jquery的-10px动画会影响下面的div,我该如何修复它们?

这里是我的代码

<style> 
#icons 
{ 
list-style-type: none; 
margin: 0px; 
padding: 0px; 
overflow: auto; 
} 
#icons li 
{ 
float: left; 
height: 170px; 
padding: 10px 0px 0px 0px; 
} 
#icons li a.img_bounce 
{ 
display: block; 
border: 0px; 
} 

#icons li img.img_shadow 
{ 
display: block; 
border: 0px; 

} 


</style> 

<script> 
jQuery(document).ready(function() { 

jQuery("#icons a.img_bounce").hover(function(){ 
jQuery(this).stop().animate({opacity: 0.75, marginTop: -10}, 400); 
},function(){ 
jQuery(this).stop().animate({opacity: 1.0, marginTop: 0}, 400); 
}); 


}); 
</script> 

<ul id="icons"> 
    <li><a href="" class="img_bounce"><img alt="Firefox" src="Firefox.png" width="128" height="128" style="opacity: 1; margin-top: 0px;"></a><img class="img_shadow" width="128" alt="Chrome" src="shadow.png" style="opacity: 1; margin-top: 0px;"></li> 
    <li><a href="" class="img_bounce"><img alt="Firefox" src="Firefox.png" width="128" height="128" style="opacity: 1; margin-top: 0px;"></a><img class="img_shadow" width="128" alt="Chrome" src="shadow.png" style="opacity: 1; margin-top: 0px;"></li> 
    <li><a href="" class="img_bounce"><img alt="Firefox" src="Firefox.png" width="128" height="128" style="opacity: 1; margin-top: 0px;"></a><img class="img_shadow" width="128" alt="Chrome" src="shadow.png" style="opacity: 1; margin-top: 0px;"></li> 
    <li><a href="" class="img_bounce"><img alt="Firefox" src="Firefox.png" width="128" height="128" style="opacity: 1; margin-top: 0px;"></a><img class="img_shadow" width="128" alt="Chrome" src="shadow.png" style="opacity: 1; margin-top: 0px;"></li> 

</ul> 

enter image description here

我已经发现,通过在动画中加入高度

on hover 
    jQuery(this).stop().animate({opacity: 0.75, marginTop: -10,height:138}, 400); 
on hover out 
    jQuery(this).stop().animate({opacity: 0.75, marginTop: -10,height:128}, 400); 

它的工作原理,但..原来的高度以某种方式修改...它不是原始的 因此修改了阴影的原始位置...在一次盘旋之后...

+0

你试过设置下边距或填充,底部或顶部图像等于你移动了DIV了多少? –

回答

1

一个非常快速的解决方案是在同一时间向底部添加一些填充/边距。 刚刚发生的事情是,因为您正在使用边距移动一个元素,所以其他元素随着它们相对定位而随之移动。

如果在底部(一个或另一个)添加额外的填充/边距,则阴影图像应保持在相同的位置。

+0

你是对的,它的工作原理......身高并不是一个好主意,但是最低限度是;) – PartySoft

相关问题