首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery动画功能有问题吗?

jQuery动画功能有问题吗?
EN

Stack Overflow用户
提问于 2009-09-17 11:57:48
回答 2查看 1.2K关注 0票数 0

我需要一个简单的三个幻灯片滑块,所以我没有使用jQ插件,而是自己手工编写了它。代码可以工作,但动画发生在2-3帧,而不是超过20帧,除非是在IE6 & IE7中,它在20-30帧内完美地生成动画。在所有其他浏览器(IE8、火狐、Chrome、Safari、Opera)中,它的动画效果就像是电脑挂起了一样。如果有人知道为什么会发生这种情况,请让我知道。我不想使用一个笨重的插件,然后再设计它的样式。

HTML:

代码语言:javascript
复制
<div class="fl-left" id="slide-box">
<div class="slide" id="slide-1">
    <img src="images/slider/1.jpg" alt="The Image Description" />
    <p class="slide-text">&quot;The Description About The Image/Slide&quot;</p>
</div>

<div class="slide" id="slide-2">
    <img src="images/slider/1.jpg" alt="The Image Description" />
    <p class="slide-text">&quot;The Description About The Image/Slide&quot;</p>
</div>

<div class="slide" id="slide-3">
    <img src="images/slider/1.jpg" alt="The Image Description" />
    <p class="slide-text">&quot;The Description About The Image/Slide&quot;</p>
</div>
</div>

CSS:

代码语言:javascript
复制
#slide-box{
position:relative;
width:472px;
height:192px;
border-bottom:3px solid #fff;
overflow:hidden;
}

.slide{ position:absolute;
float:left; width:455px;
overflow:hidden;
border:1px solid #000;
margin:8px 8px 0 8px;
}

.slide img{ float:left; }
.slide-text{ display:block;
width: 140px;
height:132px;
background:#ecefdc;
float:left;
padding: 10px 0px;
}

#slide-1 { left:0px; }
#slide-2 { left:467px; }
#slide-3 { left:934px; }

jQuery:

代码语言:javascript
复制
$('#slide-but-1').click(function(){
$('#slide-1').animate({"left": "0px"}, "slow");
$('#slide-2').animate({"left": "467px"}, "slow");
$('#slide-3').animate({"left": "934px"}, "slow");
});
$('#slide-but-2').click(function(){
$('#slide-1').animate({"left": "-467px"}, "slow");
$('#slide-2').animate({"left": "0px"}, "slow");
$('#slide-3').animate({"left": "467px"}, "slow");
});
$('#slide-but-3').click(function(){
$('#slide-1').animate({"left": "-934px"}, "slow");
$('#slide-2').animate({"left": "-467px"}, "slow");
$('#slide-3').animate({"left": "0px"}, "slow");
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-17 12:50:47

代码与我使用的jQuery投影插件冲突。删除它会使动画更加流畅。

票数 0
EN

Stack Overflow用户

发布于 2009-09-17 12:10:24

我怀疑问题出在幻灯片的样式上,也就是float: left -它是多余的,因为你使用了绝对定位。

此外,如果您有一个额外的幻灯片容器,您可以获得更好的性能,如下所示:

代码语言:javascript
复制
<div class="fl-left" id="slide-box">
    <div id="slide-container">
         <div class="slide" />
         <div class="slide" />
         <div class="slide" />
    </div>
</div>

通过这种方式,您可以只对容器$('#slide-container').animate({ left: 0 }, "slow");进行动画处理--并且生成的代码将更加整洁。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1438399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档