网站前端之纯 CSS 贝塞尔曲线运动路径_成都网站搭建
除了优雅之外,贝塞尔曲线还因其定义和构造而具有良好的数学特性。难怪它们被广泛应用于这么多领域:作为绘图/设计工具:它们在矢量绘图软件中通常被称为路径。作为表示曲线的格式:它们用于 SVG、字体和许多其他矢量图形格式。作为数学函数:通常用于控制动画时间。现在,如何使用贝塞尔曲线作为 CSS 的运动路径?快速回顾根据上下文,当提到贝塞尔曲线时,我们通常假设是二维三次贝塞尔曲线。这样的曲线由四个点定义:三次一词表示曲线的基础函数是三次多项式。还有类似的二次贝塞尔曲线,但控制点少了一个。问题假设给定了一条任意的 2D 三次 Beizer 曲线,您将如何使用纯 CSS 动画为元素设置动画,使其沿着曲线精确移动?例如,您将如何重新创建此动画?在本文中,我们将探索三种不同风格的方法。对于每个解决方案,我们将展示一个交互式演示,然后解释它是如何工作的。幕后有很多数学计算和证明,但请放心,我们不会讲得很深。开始吧!方法一:时间扭曲这是基本的想法:设置@keyframes以将元素从曲线的一个端点移动到另一个端点。分别扭曲每个坐标的时间,使用animation-timing-function.使用cubic-bezier()具有正确参数的函数,我们可以创建任何三次贝塞尔曲线的运动路径:这个演示展示了一个纯 CSS 动画。然而使用了 canvas 和 JavaScript,它们有两个目的:可视化底层贝塞尔曲线(红色曲线)。允许使用典型的路径UI 调整曲线。您可以拖动两个端点(黑点)和两个控制点(黑色方块)。JavaScript 代码将通过更新一些 CSS 变量相应地更新动画。这个怎么运作假设所需的三次贝塞尔曲线由四个点定义:p0、p1、p2和p3。我们设置 CSS 规则如下:规则并确定元素的开始和结束位置@keyframes。在我们有两个神奇的函数中,参数的计算使得两者在任何时候都始终具有正确的值。move-xmove-yanimation-timing-functioncubic-bezier()topleft我会跳过数学,但我在这里起草了一个简短的证明,供你好奇的数学头脑使用。讨论这种方法应该适用于大多数情况。您甚至可以通过为该值引入另一个动画来制作 3D 三次贝塞尔曲线z。但是,有一些小警告:由于被零除错误,当两个端点位于水平或垂直线上时,它不起作用。它不支持阶数高于 的贝塞尔曲线3。动画时间选项有限。我们使用1/3和2/3以上来实现线性时序。您可以调整这两个值来调整时间,但与其他方法相比它是有限的。稍后会详细介绍。方法二:标准贝塞尔曲线构造贝塞尔曲线的数学构造已经给了我们很好的提示。一步一步,我们可以确定所有移动点的坐标。p0首先,我们确定在和之间移动的绿点的位置p1:可以用类似的方式构建额外的绿点。接下来,我们可以像这样确定蓝点的位置:冲洗并重复,最终我们会得到想要的曲线。结论在本文中,我们讨论了 2种仅使用 CSS 动画沿着贝塞尔曲线精确移动元素的不同方法。虽然所有 2种方法都或多或少实用,但它们各有利弊:方法 1对于熟悉计时函数 hack 的人来说可能更直观。但是它在动画时间方面不太灵活。对于熟悉贝塞尔曲线数学构造的人来说,方法 2更有意义。动画时间也很灵活。另一方面,由于使用@property.就这样!我希望你觉得这篇文章很有趣。请让我知道你的想法!
网站前端之纯 CSS 贝塞尔曲线运动路径_成都网站搭建 https://cdnanqi.cn/wangzhanzhizuo/11066.html
- 网站自从做了seo优化,访客流量自然而然就会增加-华蓥SEO优化
- SEO关键字优化费用选择(SEO关键字优化费用选择什么类型)
- 网站优化有必要优化二级域名吗-成都seo优化-成都网站优化
- seo内页排名优化技巧-成都seo优化-成都网站优化
- 提升响应式网站转化率的若干技巧_成都网站搭建
- 免费seo工具 免费seo工具快速提升网站的外链 | 达州网络公司
- 浅谈做定制网站的优势_成都网站制作
- 有价值内容的不断输入是成功的SEO策略重要标志-广元SEO优化
- 网站优化我们该避免进入哪些误区-南充seo优化
- 关键词排名SEO做得好就是要去通过推广去提升企业知名度和美誉度如何提高网站关键词的排名-雅安SEO