【问题标题】:How to animate div on scroll?如何在滚动时为 div 设置动画?
【发布时间】:2014-10-19 14:49:43
【问题描述】:

您好,我可以在滚动时更改和切换 div 属性,但是当我使用动画时,它不起作用,但方式很奇怪。

以下作品:

$(document).scroll(function() {
$("#register").css({left: $(this).scrollLeft() > 1348? "-140px":"0px"});
});

但这行不通:

$(document).scroll(function() {
$("#register").animate({left: $(this).scrollLeft() > 1348? "-140px":"0px"});
});

当我滚动超过 1348 时,我希望 div 消失,如果滚动小于 1348,则 div 应该再次出现。

简单的 css 可以工作,但动画不起作用。

【问题讨论】:

  • 在每个注册的滚动事件中,CSS 应用肉眼不可见的更改,这意味着,如果 document.scrollLeft 为 animate 在每个滚动刻度上。您采取了哪些措施来防止这种情况发生?

标签: javascript jquery css scroll jquery-animate


【解决方案1】:

我会推荐使用 skrollr.js

https://github.com/Prinzhorn/skrollr

典型用法很简单:

<div data-0="background-color:rgb(0,0,255);" data-500="background-color:rgb(255,0,0);">WOOOT</div>

其中 data-number 表示当前滚动位置。

动画可以使用 css 传输来完成。

【讨论】:

  • 插件是否增加了对水平滚动的支持?
  • @RokoC.Buljan 是的,我推荐它,因为 css 的性能比 jquery animate 好得多。
  • 其实我很惊讶 FF 中的结果是多么的流畅!
  • @RokoC.Buljan 如果你对平滑度感兴趣,我建议你阅读这篇文章davidwalsh.name/css-js-animation,真的很有用;)
猜你喜欢
  • 1970-01-01
  • 2012-05-13
  • 1970-01-01
  • 1970-01-01
  • 2014-10-12
  • 2013-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多