【发布时间】:2012-05-04 22:35:58
【问题描述】:
我有一个显示我的一些工作(作品集)的 div 网格,我正在处理一个鼠标悬停事件,该事件使标题 div 向上移动并显示描述。
看看:
http://olliejones.com/demo/demo.html
现在,如您所见,当您将鼠标悬停在一个框上时,标题框的高度会向上移动,并显示说明。我猜效果很好,但描述文本(当你没有悬停时)位于 div 下方。
如果您不明白我的意思,请刷新页面,然后突出显示所有内容(Cntl A)...您看到说明文字了吗?是啊,如何防止这种情况发生?仅在其悬停处于活动状态时显示,而不在悬停时不显示?
这是我的代码,HTML,这只是第一行 div(所以是前 2 个框):
<div id="cube_base">
<div id="cube1" onmouseover="portfolio_hover_over(1);">
<div id="cube_title1">Title
<div id="cube_logo">
<img src="images/icons/photoshop.png" width="20" height="20" border="0" title='Adobe Photoshop'>
</div><br/><br/>
<span class="cube_sub_title">This is a really long description about nothing. Here I begin to talk about nothing, rather interesting isn't it? Text goes here, and is seems like my imagination stops here.</span></div>
</div>
</div>
<div id="cube_div"></div>
<div id="cube_base">
<div id="cube2" onmouseover="portfolio_hover_over(2);">
<div id="cube_title2">Title
<div id="cube_logo">
<img src="images/icons/photoshop.png" width="20" height="20" border="0" title='Adobe Photoshop'>
</div><br/><br/>
<span class="cube_sub_title">This is a really long description about nothing. Here I begin to talk about nothing, rather interesting isn't it? Text goes here, and is seems like my imagination stops here.</span></div>
</div>
</div>
<br/>
<div id="cube_gap"></div>
<br/>
CSS:
#cube_div{
float:left;
width:40px;
height:100px;
}
#cube_gap{
width:800px;
height:40px;
float:left;
}
.cube_sub_title{
font-size:12px;
font-weight: normal;
}
#cube_title1{
position:absolute;
width:335px;
height:15px;
background-image: url(images/alpha_black_strong.png);
background-repeat: repeat;
bottom:0px;
padding:10px;
color:#EEE;
}
#cube_title2{
position:absolute;
width:335px;
height:15px;
background-image: url(images/alpha_black_strong.png);
background-repeat: repeat;
bottom:0px;
padding:10px;
color:#EEE;
}
#cube_base{
width:355px;
height:200px;
background-color:#080;
float:left;
padding:5px;
background-color:#f0f0f0;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
-moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
border-radius:2px 2px 2px 2px;
border: 1px solid #bbbbbb;
background-image: url(images/icon_slate.png);
background-repeat: repeat-x;
background-position: top;
cursor:pointer;
}
/* Logo placements */
#cube_logo{
height:20px;
float:right;
left: 50px;
margin-top:-2px;
}
/* Actual Content for the cube divs */
#cube1{
position:relative;
width:355px;
height:200px;
background-color: #777;
}
#cube2{
position:relative;
width:355px;
height:200px;
background-color: #777;
}
还有我的JS:
function portfolio_hover_over(cube){
// hides the text panel
for(var i = 1; i < 7; i++){
if(i != cube){
//animated panel back to 15px
$('#cube_title'+i).animate({
height: '15px'}, 200, function(){
});
}
}
$('#cube_title'+cube).animate({
height: '130px'}, 200, function(){
});
}
我知道这里有很多,但如果我能得到任何帮助,我将不胜感激,谢谢!
【问题讨论】:
-
请使用jsfiddle.net准备问题,这样我们就不必自己复制粘贴了。
-
Tim Banks 的解决方案可以解决问题,仅供参考:对于页面上的单个元素,ID 必须是唯一的。改用类。
-
注意到了,谢谢。另外,有人能告诉我为什么他们是滞后的吗?
标签: javascript jquery css html