在页面加载动画上制作 css 的正确方法是啥? [复制]

Posted

技术标签:

【中文标题】在页面加载动画上制作 css 的正确方法是啥? [复制]【英文标题】:What is the right way to make a css on page load animation? [duplicate]在页面加载动画上制作 css 的正确方法是什么? [复制] 【发布时间】:2015-07-30 01:17:57 【问题描述】:

我的问题并不是关于如何制作在页面加载时触发的动画,而是最好的方式。这至少意味着:

-响应式。

-SEO 友好。

-不闪烁。

通常我会创建一个未激活的.hidden.offpage 状态(以防万一没有javascript 工作)。然后,当页面加载时,javascript 添加一个类来隐藏它们而不进行转换,然后通过转换反转状态。

这种方法可以改进吗?

【问题讨论】:

CSS3 不是您认为的解决方案? 应该是吧,不过把animate用于非装饰性的目的感觉有点奇怪…… 什么意思?目的是在页面加载时为某些内容设置动画。我们将使用 Javascript 显示或隐藏某些内容的唯一情况是,当我们异步调用数据并且我们希望仅在获得数据时才显示 div,以避免出现空框。 【参考方案1】:

您不需要任何 Javascript 来制作动画。您可以简单地使用 CSS3。

Example :

header 
  background: #000;
  color: #fff;
  height: 20px;
  position: relative;
  padding: 10px;
  -moz-animation-name: dropHeader;
  -moz-animation-iteration-count: 1;
  -moz-animation-timing-function: ease-in;
  -moz-animation-duration: 0.3s;
  -webkit-animation-name: dropHeader;
  -webkit-animation-iteration-count: 1;
  -webkit-animation-timing-function: ease-in;
  -webkit-animation-duration: 0.3s;
  animation-name: dropHeader;
  animation-iteration-count: 1;
  animation-timing-function: ease-in;
  animation-duration: 0.3s;

header ul 
  list-style: none;
  margin: 0;
  padding: 0;

header ul li 
  display: inline-block;
  margin-right: 20px

@-moz-keyframes dropHeader 
  0% 
    -moz-transform: translateY(-40px);
  
  100% 
    -moz-transform: translateY(0);
  

@-webkit-keyframes dropHeader 
  0% 
    -webkit-transform: translateY(-40px);
  
  100% 
    -webkit-transform: translateY(0);
  

@keyframes dropHeader 
  0% 
    transform: translateY(-40px);
  
  100% 
    transform: translateY(0);
  

/* Added for aesthetics */

body 
  margin: 0;
  font: normal 14px"Segoe UI", Arial, Helvetica, Sans Serif;

a 
  color: #eee;
  text-decoration: none;
<header>
  <ul>
    <li><a href="#">Home</a>
    </li>
    <li><a href="#">About</a>
    </li>
    <li><a href="#">Products</a>
    </li>
    <li><a href="#">Contact</a>
    </li>
  </ul>
</header>

【讨论】:

以上是关于在页面加载动画上制作 css 的正确方法是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在方向更改时禁用 css 动画

页面加载时触发CSS转换属性[重复]

具有 CSS 变量和 @keyframes 的 CSS 动画未在 Safari 上更新

使用算法制作动画 GIF 的最佳方法是啥?

在页面加载之前,动画 SVG 不会动画

制作蓝色乐谱动画条