【问题标题】:What's the technique behind animation on a web page?网页动画背后的技术是什么?
【发布时间】:2012-10-24 11:26:56
【问题描述】:

虽然我们可以通过 jQuery 等各种 Javascript 库来实现梦幻般的动画。我想知道动画背后的技术是什么?

我可以考虑使用 CSS 来格式化页面元素。

但是我们怎样才能在页面的任意位置放置一个元素呢?我的意思是,不是按线。我们真的可以将浏览器窗口中的客户区视为画布吗?

我对前端 Web 开发完全陌生,我希望我说清楚了。感谢您回答这个初级问题。

【问题讨论】:

  • 没有技巧? jQuery 所做的只是在一定的时间间隔内增加或减少 CSS 值,以使元素在屏幕上移动,看起来像动画,这就是它的全部内容,不需要任何魔法!
  • - 但是我们怎样才能在页面的任意位置放置一个元素呢?使用 CSS 定位并设置元素的顶部和左侧值。请参阅w3schools.com/css/css_positioning.asp 正如adeno 所指出的,jQuery 所做的只是改变这些CSS 属性以实现所需的动画。
  • 这是一个活生生的例子 jsfiddle.net/zYKEw 使用 @MrUpsidown 所说的

标签: javascript jquery html css web-applications


【解决方案1】:

jQuery 方式(也是唯一的跨浏览器方式)动画是设置一些 CSS 属性,稍等,更新这些属性,稍等,更新这些属性...

e.style.position = "absolute";
time_start = Date.now();
time_end = time_start + 10000;

(function tick(){
  now = Date.now() - time_start;
  if(now > time_end) now = time_end;
  e.style.top = now * speed + top_start;
  if(now < time_end) setTimeout(tick, 13);
}();

您感兴趣的 CSS 属性是:

  • position: absolute 可让您将元素定位到任意位置。
  • display: blockdisplay: inline-block 让元素具有 widthheight
  • topleftbottomright 定义元素位置,如果其positionabsoluterelativeleft 优先于 righttop 优先于 bottom
  • widthheight 定义元素的大小。
  • opacity 可以动画淡入或淡出元素。

  • paddingborder-widthmargin及其各自的组件都可以动画化。

您还可以为颜色设置动画:border-colorcolorbackground

【讨论】:

  • 感谢大家。虽然我现在对 CSS 细节还不是很熟悉,但你们已经揭开了所有魔法背后的核心概念,给了我一个非常令人印象深刻的开始。对我以后的学习有很大的帮助。谢谢!
  • 看来我的下一步应该是熟悉 CSS。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多