我正在编写一个脚本,当您将鼠标悬停在图像上时,该脚本会淡入淡出图像和我在图像后面设置的 div。我有两个问题:
图像和 div 上的淡入淡出似乎没有以相同的速度移动,即使我将它们设置为也是如此。
我不知道如何让 div 只显示您悬停在上面的图像。如果我可以输入 ("this"div.info) 作为一个对象,它会工作得很好。有办法吗?
我无法获取 $(".info",this)
、$(this).find(".info")
或 $ (".info", $(this).closest("li"))
工作。
结果:我找到了解决方案。我能够通过使用 lthibodeaux 的建议并使用 $(".info", $(this).closest("li"))
作为对象并使所有函数 .fadeTo
到这里查看结果:
http://jsfiddle.net/Z5p4K/7/
编辑:
我发现图像和 div 动画确实以相同的速度移动,只是图像仅在悬停时设置了 z-index,所以如果您在动画运行时将鼠标从图像上移开,当图像真的在 div 后面时,它似乎以与 div 不同的速度移动,它只是看起来以不同的速度移动,因为当 div 变得不可见时你可以看到它后面的图像但是当它变得不透明时,图像消失了(让你认为图像变得不可见,而实际上 div 在图像前面)。通过将 z-index 属性从
ul.columns li:hover img
移动到ul.columns li img
可以轻松解决这个问题。当您将鼠标悬停在它上面时,div 周围只有一个边框。这很容易通过将边框属性从
ul.columns li:hover .info
更改为ul.columns li .info
来解决
在这里查看最终版本:http://jsfiddle.net/tV9Bw/
这是最终版本,因为我再也找不到任何代码的问题;一切都经过优化,没有任何问题,而且看起来很棒。
感谢所有回答的人,也感谢 Yi Jiang 以更好的格式编辑了这篇文章。我是这个网站的新手,所以我不确定如何正确地格式化我的问题。
非常感谢 artyom.stv 修复了脚本中我不知道如何修复的最后一个故障。
最佳答案
您已经了解了总体思路。关于选择器,您应该了解的一件事是您可以将第二个参数定义为选择器的范围,即
$("selectorString", scopeObject)
在您的情况下,使第二个参数成为 $(this).closest("li")
。它将找到包含您的图像的列表项并选择该容器的 .info
后代:
$(".info", $(this).closest("li")).fadeIn(1000);
关于javascript - 我可以在 jQuery 中的 "this"之后添加更多吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7508706/