jQuery动画功能有问题吗?
我需要一个简单的三张幻灯片滑块,所以我没有使用jQ插件,而是自己手工编写。代码可以工作,但动画在2-3帧中出现,而不是在20帧以上出现,除非在IE6和IE7中,动画在20-30帧中完美地出现。在所有其他浏览器(IE8、Firefox、Chrome、Safari、Opera)中,它都会以一种好像电脑挂起的动作来制作动画。如果有人知道为什么会这样,请告诉我。我不想使用一个笨重的插件,然后再设计它 HTML: jQuery:jQuery动画功能有问题吗?,jquery,html,css,slider,jquery-animate,Jquery,Html,Css,Slider,Jquery Animate,我需要一个简单的三张幻灯片滑块,所以我没有使用jQ插件,而是自己手工编写。代码可以工作,但动画在2-3帧中出现,而不是在20帧以上出现,除非在IE6和IE7中,动画在20-30帧中完美地出现。在所有其他浏览器(IE8、Firefox、Chrome、Safari、Opera)中,它都会以一种好像电脑挂起的动作来制作动画。如果有人知道为什么会这样,请告诉我。我不想使用一个笨重的插件,然后再设计它 HTML: jQuery: $('#slide-but-1').click(function(){ $(
$('#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");
});
我怀疑问题在于幻灯片的样式,即
float:left
-它是多余的,因为您使用绝对定位
此外,如果您有一个额外的幻灯片容器,您可以获得更好的性能,如下所示:
<div class="fl-left" id="slide-box">
<div id="slide-container">
<div class="slide" />
<div class="slide" />
<div class="slide" />
</div>
</div>
通过这种方式,您可以仅为容器设置动画,
$(“#幻灯片容器”).animate({left:0},“slow”)代码>-生成的代码会更干净。我怀疑问题在于幻灯片的样式,即float:left
-它是多余的,因为您使用绝对定位
此外,如果您有一个额外的幻灯片容器,您可以获得更好的性能,如下所示:
<div class="fl-left" id="slide-box">
<div id="slide-container">
<div class="slide" />
<div class="slide" />
<div class="slide" />
</div>
</div>
通过这种方式,您可以仅为容器设置动画,$(“#幻灯片容器”).animate({left:0},“slow”)代码>-生成的代码将更干净。代码与我使用的jQuery Drop Shadow插件冲突。删除它使动画变得平滑。代码与我使用的jQuery Drop Shadow插件冲突。删除它使动画变得平滑。我最初使用容器,因为它明显减少了我的jQuery代码,但它挂起了,因此我认为应该尝试分别为每张幻灯片制作动画,但这并没有真正改变任何事情。我知道浮动:左,但删除它会因为某种原因破坏我的布局。我最初做容器的事情,因为它明显减少了我的jQuery代码,但它挂起了,因此我认为我应该尝试分别为每张幻灯片设置动画,但这并没有真正改变任何事情。我知道浮动:左,但出于某种原因,删除它会破坏我的布局。
<div class="fl-left" id="slide-box">
<div id="slide-container">
<div class="slide" />
<div class="slide" />
<div class="slide" />
</div>
</div>