当前位置: 首页 > 面试题库 >

CSS:动画与过渡

慕迪
2023-03-14
问题内容

因此,我了解了如何同时执行CSS3过渡和动画。我用谷歌搜索的不清楚是什么时候使用它。

例如,如果我想使球弹跳,很明显,动画是必经之路。我可以提供关键帧,而浏览器将做中间帧,并且我将获得一个不错的动画。

然而,在某些情况下,无论哪种方式都可以达到上述效果。一个简单而常见的示例是实现Facebook风格的滑动抽屉菜单:

可以通过以下过渡来实现此效果:

.sf-page {
    -webkit-transition: -webkit-transform .2s ease-out;
}

.sf-page.out {
    -webkit-transform: translateX(240px);
}

或者,通过类似这样的动画:

.sf-page {
    -webkit-animation-duration: .4s;
    -webkit-transition-timing-function: ease-out;
}

.sf-page.in {
    -webkit-animation-name: sf-slidein;
    -webkit-transform: translate3d(0, 0, 0);
}

.sf-page.out {
    -webkit-animation-name: sf-slideout;
    -webkit-transform: translateX(240px);
}

@-webkit-keyframes sf-slideout {
    from { -webkit-transform: translate3d(0, 0, 0); }
    to { -webkit-transform: translate3d(240px, 0, 0); }
}

@-webkit-keyframes sf-slidein {
    from { -webkit-transform: translate3d(240px, 0, 0); }
    to { -webkit-transform: translate3d(0, 0, 0); }
}

使用HTML如下所示:

<div class="sf-container">
    <div class="sf-page in" id="content-container">
        <button type="button">Click Me</button>
    </div>
    <div class="sf-drawer">
    </div>
</div>

并且,此随附的jQuery脚本:

$("#content-container").click(function(){
    $("#content-container").toggleClass("out");
    // below is only required for css animation route
    $("#content-container").toggleClass("in");
});

我想了解的是这些方法的优缺点。

  1. 一个明显的区别是动画需要花费更多的代码。
  2. 动画具有更好的灵活性。我可以滑入和滑入不同的动画
  3. 关于性能,有什么可以说的吗?两者都利用硬件加速吗?
  4. 哪个更现代以及前进的方向
  5. 您还可以添加其他内容吗?

问题答案:

看起来您已经掌握了如何执行操作的能力,而不是何时执行操作。

过渡 是一种动画 ,只是一种在两个不同的状态(即开始状态和结束状态)之间执行 的动画
。就像抽屉菜单一样,开始状态可以是打开的,结束状态可以是关闭的,反之亦然。

如果要执行 特别涉及开始状态和结束状态的操作,或者需要对过渡中的关键帧进行更精细的控制,则必须使用动画。



 类似资料:
  • 我想要一个div从右边滑入角2使用CSS。 如果我只使用[ngClass]来切换类和使用不透明度,我就能正常工作。但是li不想从一开始就呈现该元素,所以我首先用ngIf“隐藏”它,但是之后的过渡就不起作用了。

  • 主要内容:@keyframes 规则,animation-name,animation-duration,animation-timing-function,animation-fill-mode,animation-delay,animation-iteration-count,animation-direction,animation-play-state,animation通过《 CSS过渡》一节的学习我们知道,利用 transition 属性可以实现简单的过渡动画,但过渡动画仅能指定开始

  • CSS 动画可以在不借助 Javascript 的情况下做出一些简单的动画效果。 你也可以通过 Javascript 控制 CSS 动画,使用少量的代码,就能让动画表现更加出色。 CSS 过渡(transition)[#css-transition] CSS 过渡的理念非常简单,我们只需要定义某一个属性以及如何动态地表现其变化。当属性变化时,浏览器将会绘制出相应的过渡动画。 也就是说:我们只需要改

  • 问题内容: 我一直在寻找一种仅使用CSS3单击位于页面顶部的按钮时向下滚动的方法。 但这对于我的需求而言有点太先进了,因为我只希望浏览器单击页面顶部的一个按钮即可向下滚动,所以我想知道:是否可以在没有输入按钮的情况下进行那些CSS滚动,有锚标签? HTML看起来像这样: 我已经有一些CSS,需要在单击按钮时触发: 问题答案: 您可以使用css3 伪选择器使用锚标记来完成此操作,当与当前URL哈希具

  • 问题内容: 我想创建仅由类名支持的展开/折叠动画(使用JavaScript来切换类名)。 我要上一堂课 另一个(我也尝试过value ,它根本没有动画) 进行动画处理: 我使用CSS过渡在它们之间进行切换,但是浏览器似乎在为所有这些多余的动画设置动画,因此它会延迟折叠效果。 有没有办法做到这一点(本着同样的精神- 使用CSS类名)没有副作用(我可以减少像素数,但是显然有缺点,因为它可能会切断合法文

  • 问题内容: 我希望div使用CSS从右角2滑入。 如果我仅使用[ngClass]来切换类并利用不透明性,则可以正常工作。但是li不想从一开始就渲染该元素,因此我先用ngIf“隐藏”了它,但是之后过渡将无法工作。 问题答案: 更新4.1.0 柱塞 另请参见https://github.com/angular/angular/blob/master/CHANGELOG.md#400-rc1-2017-