我正在尝试将一个部分隐藏在列表项中(通过overflow: hidden)的图像动画化。我希望当用户将鼠标悬停在同一列表项中的A标记上时,就会发生这种情况。
我有以下标记:
<div id="projects" class="section">
<ul>
<li>
<img src="assets/img/projects/pf6.jpg" width="980" height="500" alt="Project title" />
<h2 class="left middle"><span>new</span><a href="#">Title 1</a></h2>
</li>
<li>
<img src="assets/img/projects/pf4.jpg" width="980" height="500" alt="Project title" />
<h2 class="bottom right"><a href="#">Title 2</a></h2>
</li>
</ul>
</div>我的基本css:
#projects ul li {
width: 100%;
height: 450px;
position: relative;
display: block;
margin-bottom: 20px;
color: #fff;
overflow: hidden;
}
#projects ul li img {
position: absolute;
top: -50px;
left: 0;
}我尝试使用jQuery执行以下操作来移动图像(无济于事):
$("#projects li h2 a").hover(
function () {
$(this).closest("img").animate({paddingTop: "50px"}, "slow");
},
function () {
$(this).closest("img").animate({paddingTop: "0"}, "slow");
}
);任何人知道为什么这不工作!-任何帮助非常感谢:-)
发布于 2009-11-09 03:17:18
closest()仅选择当前元素及其父元素(然后将其限制为第一个匹配项)。
您的img元素不是悬停处理程序所在链接的父元素,因此它不起作用。
更新:正如ScottyUSCD所指出的,我之前发布的代码将无法工作。我误读了来源,以为这些元素是兄弟姐妹。
他的回答是正确的:
$(this).closest("li").children("img")这将向上导航到最接近的父li元素,然后在该元素的子元素中查找任何img元素。
发布于 2009-11-09 03:22:34
我认为应该是:
$(this).closest("li").children("img").animate()或者你可以这样做:
$(this).closest("h2").prevAll("img")发布于 2013-08-07 02:04:50
如果<img>也可以位于<h2>之后,请使用:
$(this).closest("h2").siblings("img");https://stackoverflow.com/questions/1697577
复制相似问题