jquery - 滚动触发的动画很慢

标签 jquery html css jquery-animate carousel

我正在开发一个旋转木马,它会在滚动到某个点时锁定页面顶部。为了让它在锁定时看起来不错,我需要制作当前选定的图像,以及未选定的其他图像的大小。我已经使用直接的 css 很好地完成了它,但我宁愿有一个动画来实现更平滑的过渡。我有以下代码,但速度非常慢。我的意思是真的很慢。它设置为需要 0.2 秒,但它需要大约 20 秒,有时甚至更长。我在这里做错了什么吗?

HTML -

<li class="active" style="width: 282px; margin-top: 0px;">
 <a data-slideindex="0" href="#">
  <div class="carousel-photo faded" style="height: 282px; width: 282px; background-image: url("images/photos/featured11.jpg");">
    <img class="photo" src="images/photos/featured11.jpg" style="display: none;">
  </div>
  <span class="name" style="width: 282px; font-size: 2.25em; margin-top: 15px; text-transform: uppercase;">John Doe</span>
  <span class="member-date" style="width: 282px; font-size: 1em;">11/26/2002</span>
 </a>
</li>

jQuery-

  $('.carousel-wrap .active').animate({ width: '155px', marginTop: '64px', marginRight: '0px' }, 200);
  $('.carousel-wrap .active .carousel-photo').animate({'height': '155px', 'width': '155px'}, 200);
  $('.carousel-wrap .active .name').animate({ width: '155px', fontSize: '.9375em', marginTop: '8px', 'text-transform': 'none'}, 200);
  $('.carousel-wrap .active .name').css({ 'text-transform': 'none' });
  $('.carousel-wrap .active .member-date').animate({ width: '155px', fontSize: '.75em' }, 200);

当滚动经过一个点时触发,但设置为只执行一次,因此它不会被多次调用。

最佳答案

你如何设置它被触发?你确定它只被调用过一次吗?即便如此,在使用由事件调用的动画时,最好停止可能仍在元素上运行的任何先前动画。你可以这样做:

$('.carousel-wrap .active').stop().animate({ width: '155px', marginTop: '64px', marginRight: '0px' }, 200);

关于jquery - 滚动触发的动画很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20999342/

相关文章:

javascript - 使用 HTML 和 javascript 制作在线计算器

javascript - 为什么我的一些链接标题被放置在我的 <a> 标签之外?

javascript - 为什么 Twitter 的关注按钮小部件不记得我?

javascript - 在类之间切换会使动画无法继续,只是跳到结束

javascript - 将变量传递给 jquery 模态,如何?

css - 试图在内容 div 周围留出边距

html - 如何使用 CSS 制作类似 Bounce 的动画?

javascript - 使用 Javascript 不显示 Css 导航

javascript - 为什么 DOM 单击事件需要这么长时间?

javascript - 如何将日期时间字符串转换为特定的日期时间格式