新手 - ie7和jquery .animate() - 滑动字幕

时间:2011-08-23 05:50:37

标签: animation internet-explorer-7 caption sliding

我正在尝试制作一些滑动字幕,例如Mosaic,但更轻。在所有主流浏览器中,一切看起来都很好(即使它在ie8中看起来很慢),但在ie7中没有任何反应。 我正在使用ieTester进行测试,我不知道该错误是来自软件还是来自我的代码。 我相信你会有一些提示来帮助我改进它!

非常感谢。

HTML:

<div class="imgbox">
 <img src="#" />
 <a href="#" class="caption">
 <div class="details">
 <h6>Lorem ipsum</h6>
 <p>Lorem ipsum dolor sit amet,…</p>
 </div>
 </a>
</div>

CSS:

.imgbox{
 width: 204px;
 height: 154px;
 position: relative;
 overflow: hidden;
 float: left;
 margin: 10px;
 border:1px solid #999;
 -webkit-box-shadow:0 1px 3px rgba(0,0,0,0.8);
 -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);}

.imgbox img{
 width: 200px;
 height: 150px;
 padding: 2px;
 overflow: hidden;}


.caption{
 display:block;
 position:absolute;
 top:104px;
 height:100%;
 width:100%;

 background: rgb(0,0,0);
 background: rgba(0,0,0,0.6);  
 background: transparent\9;
 zoom: 1;
 -ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)"; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);}

JS:

$(".imgbox").hover(
    function() 
    {$(this).children('.caption').animate({top:0},"fast");},
    function() 
    {$(this).children('.caption').animate({top:104},"fast");}
 );

2 个答案:

答案 0 :(得分:0)

您的HTML代码无效。 a元素是内联元素,不能包含div等块元素。浏览器有不同的方法来处理不正确的标记,并可能重新排列或忽略某些标记以创建有效的元素。

在链接中放入内联元素以便正确解析它们,然后您可以使用CSS将它们转换为块元素:

<div class="imgbox">
 <img src="#" />
 <a href="#" class="caption">
 <spap class="details">
 <span class="h6">Lorem ipsum</span>
 <span class="p">Lorem ipsum dolor sit amet,…</span>
 </span>
 </a>
</div>

CSS:

.imgbox a, .imgbox .details, .imgbox .h6, .imgbox .p { display: block; }

CSS代码中也有一些黑客可能不会与IE7完全兼容。您可以注释掉其中一些,以测试它们是否会导致问题。

答案 1 :(得分:0)

我发现它来自标题的位置。我设置了一个顶部位置,但没有定义任何左或右位置。 有了这段代码,它现在出现在ie7:

.caption{
 display:block;
 position:absolute;
 top:104px;
 left:0;
 height:100%;
 width:100%;

但在ie8和ie7上它仍然很慢。 无论如何,问题解决了!