<路径 clip-rule="evenodd" d="M33.377 4.574a3.508 3.508 0 0 0-2.633-1.126c-1 0-1.993.67-2.604 1.334l.002-1.24-1.867-.002-.02 10.17v.133l1.877.002.008-3.18c.567.611 1.464.97 2.462.973 1.099 0 2.022-.377 2.747-1.117.73-.745 1.1-1.796 1.103-3.002.003-1.232-.358-2.222-1.075-2.945Zm-3.082.55c.637 0 1.176.23 1.602.683.438.438.663 1.012.66 1.707-.003.7-.22 1.33-.668 1.787-.428.438-.964.661-1.601.661-.627 0-1.15-.22-1.6-.666-.445-.46-.662-1.086-.662-1.789.003-.695.227-1.27.668-1.708a2.13 2.13 0 0 1 1.596-.675h.005Zm5.109-.067-.008 4.291c-.002.926.263 1.587.784 1.963.325.235.738.354 1.228.354.376 0 .967-.146.967-.146l-.168-1.564s-.43.133-.64-.01c-.198-.136-.296-.428-.296-.866l.008-4.022 1.738.002.002-1.492-1.738-.002.005-2.144-1.874-.002-.005 2.143-1.573-.002 1.57 1.497ZM20.016 1.305h-9.245l-.002 1.777h3.695l-.016 8.295v.164l1.955.002-.008-8.459 3.621-.002V1.305Z" fill="#262D3D" fill-rule="evenodd"><路径 clip-rule="evenodd" d="M10.06 5.844 7.277 3.166 4.015.03 2.609 1.374l2.056 1.978-4.51 4.313 6.065 5.831 1.387-1.327-2.073-1.994 4.526-4.331ZM4.274 8.7a.211.211 0 0 1-.124 0c-.04-.013-.074-.03-.15-.102l-.817-.787c-.072-.069-.092-.104-.105-.143a.187.187 0 0 1 0-.12c.013-.039.03-.07.105-.143L5.76 4.938c.072-.07.108-.09.15-.099a.21.21 0 0 1 .123 0c.041.012.075.03.15.101L7 5.727c.072.07.093.104.103.144.013.04.013.08 0 .119-.013.04-.03.072-.106.143L4.422 8.601a.325.325 0 0 1-.147.099Z" fill="#204ECF" fill-rule="evenodd"><路径 clip-rule="evenodd" d="M24.354 4.622a3.94 3.94 0 0 0-2.876-1.149 4.1 4.1 0 0 0-2.829 1.084c-.804.725-1.214 1.733-1.217 2.992-.002 1.26.405 2.267 1.207 2.995a4.114 4.114 0 0 0 2.832 1.094c.04.002.082.002.123.002a3.967 3.967 0 0 0 2.75-1.138c.538-.532 1.183-1.473 1.186-2.938.002-1.465-.637-2.408-1.176-2.942Zm-.59 2.94c-.003.73-.228 1.334-.671 1.794-.441.458-.99.69-1.633.69a2.166 2.166 0 0 1-1.614-.697c-.43-.45-.65-1.057-.65-1.797s.222-1.344.655-1.795a2.17 2.17 0 0 1 1.617-.69c.64 0 1.189.235 1.63.698.443.46.668 1.064.665 1.797ZM41.15 6.324c0-.458.25-1.465 1.632-1.465.49 0 .768.159 1.003.347.227.18.34.626.34.994v.174l-2.282.341C40.035 6.98 39 7.913 38.993 9.28c-.002.708.266 1.314.777 1.76.503.438 1.191.67 2.004.673 1.023 0 1.792-.354 2.341-1.084.003.31.003.621.003.91h1.903l.013-5.246c.002-.856-.289-1.685-.864-2.14-.567-.449-1.31-.679-2.386-.681h-.015c-.82 0-1.69.208-2.274.695-.689.572-1.027 1.478-1.027 2.178l1.682-.02Zm.864 3.814c-.676-.002-1.115-.371-1.112-.938.003-.589.43-.933 1.346-1.081l1.875-.305v.017c-.005 1.36-.87 2.307-2.102 2.307h-.008Zm4.917-8.712-.018 10.058v.044l1.684.005.018-10.06v-.045l-1.684-.002Zm2.654 9.491c0-.173.062-.322.19-.445a.645.645 0 0 1 .462-.186c.18 0 .338.062.465.186a.596.596 0 0 1 .193.445.583.583 0 0 1-.193.443.644.644 0 0 1-.465.183.634.634 0 0 1-.461-.183.59.59 0 0 1-.191-.443Zm.108 0c0 .146.052.273.158.376a.54.54 0 0 0 .389.154.539.539 0 0 0 .547-.53.498.498 0 0 0-.16-.373.531.531 0 0 0-.387-.156.531.531 0 0 0-.387.155.497.497 0 0 0-.16.374Zm.702.344-.176-.3h-.118v.3h-.109v-.688h.292c.144 0 .23.082.23.196 0 .096-.076.168-.176.188l.178.304h-.121Zm-.294-.596v.21h.167c.093 0 .14-.034.14-.104 0-.072-.047-.106-.14-.106h-.167Z" fill="#262D3D" fill-rule="evenodd">作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.
<路径 d="m2.3438,5.6562l-2.3438,2.3438,2.3438,2.3438v3.3137h3.3137l2.3425,2.3425,2.3425-2.3425h3.315v-3.315l2.3425-2.3425-2.3425-2.3425v-3.3137h-3.3138l-2.3437-2.3438-2.3438,2.3438h-3.3125v3.3125Zm5.0488,2.7528l2.754-2.7654.9705.9739-3.7245,3.7399-.9705-.9739-1.3672-1.3733.9705-.9752,1.3672,1.3739Z" fill="currentColor"><路径 class="text-white dark:text-transparent" clip-rule="evenodd" d="M10.1465 5.64374L7.39254 8.4091L6.02535 7.03518L5.05485 8.01039L6.42204 9.38364L7.39254 10.3575L11.117 6.61761L10.1465 5.64374Z" fill="currentColor" fill-rule="evenodd">验证专家 在工程
<路径 clip-rule="evenodd" d="M12.785 3.30422L8.19592 0.680947C7.8317 0.472777 7.41948 0.363281 7 0.363281C6.58052 0.363281 6.1683 0.472777 5.80408 0.680947L1.21446 3.30422C0.463414 3.73353 0 4.53222 0 5.3977V10.6014C2.84061e-05 11.0265 0.112371 11.444 0.325646 11.8116C0.538921 12.1793 0.845549 12.484 1.21446 12.6949L5.80408 15.3182C6.16837 15.5265 6.5807 15.636 7.00029 15.636C7.41987 15.636 7.8322 15.5265 8.19649 15.3182L12.785 12.6949C13.154 12.4841 13.4607 12.1794 13.6741 11.8117C13.8875 11.4441 13.9999 11.0265 14 10.6014V5.3977C13.9999 4.97258 13.8875 4.55504 13.6741 4.1874C13.4607 3.81975 13.154 3.51507 12.785 3.30422ZM5.09524 8.68011L4.60062 11.3333L7.19048 10.0807L9.78033 11.3333L9.28571 8.68011L11.381 6.80108L8.4854 6.41398L7.19048 4L5.89555 6.41398L3 6.80108L5.09524 8.68011Z" fill="currentColor" fill-rule="evenodd">17 的经验

Juan is a systems engineer since 2005. 他是一个渴望学习的人,一个多才多艺的开发人员,并且非常注重细节.

任何称职的前端工程师都知道碎片化的设备生态系统带来的挑战. 不同的屏幕尺寸, 决议, 和 aspect ratios make it difficult to deliver a consistent experience. More so for those who want to deliver a pixel-perfect experience.

可缩放矢量图形(svg)帮助解决了部分问题,并且做得非常好. Although they have their limitations, SVGs can be very helpful for certain occasions 和, 如果你有一个优秀的设计团队, 你也可以在不增加浏览器不必要的负担或阻碍加载时间的情况下,创造出更令人惊叹的视觉体验.

在过去的几个月, 我一直致力于一个广泛使用SVG及其动画和效果功能的项目. 在本文中, 我将分享如何使用SVG及其动画技术为您的web前端工作带来一些新的生命.

可缩放矢量图形

SVG is an image format that is based on XML, much like how HTML works. 它为许多熟悉的几何形状定义了不同的元素,这些几何形状可以在标记中组合以生成二维图形.

SVG规范 is an open st和ard developed by the World Wide Web Consortium (W3C) in 1999.

All major web browsers have had SVG渲染支持 有一段时间了.

Since SVG graphics are XML documents, web浏览器提供了基于DOM节点的api,可用于与图像交互. 谈论 让图片栩栩如生!

SVG路径

If t在这里 is one overpowered 元素 in SVG, that would be the <路径> 元素.

路径元素是一个基本的形状,可以用来创建几乎任何你能想到的高级2D形状.

的 元素 works by taking a sequence of drawing comm和s. It is a lot like the Logo programming language from 1967, only modernized 和 designed for fancy graphics. 的 元素 takes 这 sequence of drawing comm和s through the attribute d.


<路径 d="M10 10 L75 10 L75 75 Z" />

You can think of a virtual pen that draws on the screen, 和 the drawing comments in the 路径 元素 merely controls the pen. In the example above, the pen is being instructed to move to position (10, 10) (M10 10),划清界限 (75, 10) (L75 10),划清界限 (75, 75) L75 75 和 然后 to close the 路径 by returning to the starting point (Z).

Using other drawing comm和s, such as arcs (A)、二次贝塞尔曲线(Q)、三次贝塞尔曲线(C), etc you can create much more complex shapes 和 graphics in SVG.

You can learn a lot more about the 路径 元素 在这里.

SVG路径和CSS

“好吧,胡安,我明白了. Paths are powerful, but how do I animate them?你说.

对于我们的第一项技术,我们将利用两个SVG属性: stroke-dasharraystroke-dashoffset.

stroke-dasharray attribute controls the pattern of dashes 和 gaps used to stroke the 路径. 如果你想把你的线条画成一组破折号和空白,而不是一个连续的笔画, 这 is the attribute you would use.

SVG图像是web浏览器DOM的一部分,stroke-dasharray是一个表示元素, the attribute can also be set using CSS.

类似地, stroke-dashoffset 属性(指定在破折号模式中开始破折号的距离)也可以使用CSS来控制.

这两个SVG属性, 在一起, can be used to animate SVG 路径s, giving the viewer the illusion that the 路径s are being drawn gradually.

Take 这 quadratic bezier curve, for example:

<路径 class="路径" d="M10 80 Q 77.5 10, 145 80 T 280 80" fill="transparent" stroke="#000000" stroke-width="5">
<路径 fill="transparent" stroke="#000000" stroke-width="5" d="M10 80 Q 77.5 10, 145 80 T 280 80" class="路径">

将这条路径动画化,就好像它是在屏幕上逐渐平滑地绘制的, we will have to set the dash (和 gap) lengths, using the stroke-dasharray attribute, 等于路径长度. 这是为了使虚线曲线中的每个破折号和间隙的长度等于整个路径的长度.

Next, we will set the dash offset, using the stroke-dashoffset attribute, to 0. 这将使路径在屏幕上显示为一条实曲线(我们实际上是在看第一个破折号), 和 we already made each dash span the entire length of the curve). By setting the dash offset equal to the length of the curve, 我们最终会得到一条看不见的曲线(我们现在看到的曲线被渲染成一个完整的缺口——紧跟着破折号的部分)。.

现在,通过动画stroke-dashoffset属性,您可以使曲线逐渐出现在屏幕上.

看笔 total - SVG & CSS路径 by total 博客 (@toptalblog) on CodePen.

As you can see, the curve is always t在这里. We are only changing the dash offset to make the dashed part appear 位 by 位.

你可以使用相同的原则,但要有更多的路径:

看笔 total - SVG & CSS路径 by total 博客 (@toptalblog) on CodePen.

Here you have one black curve that is fixed, a red one that is moving along the 路径, 和 another black one following the red one but 40px behind.

Stroke-dasharray和stroke-dashoffset是两个非常强大的属性,可用于向SVG路径应用大量动画和效果. 你可以试试 h和y tool that you can use to experiment with the two attributes.

Animating Objects Along SVG路径

使用SVG和CSS,您可以做的另一件很酷的事情是使对象或元素沿着路径移动.

T在这里 are 2 SVG attributes we are going to use for the animation:

  • offset-路径: offset-路径 CSS属性指定元素定位的偏移路径.

  • offset-distance: offset-distance CSS属性指定偏移路径上的位置.

通过结合这两个属性,你可以很容易地制作出这样的动画:

看笔 total - SVG & CSS路径 by total 博客 (@toptalblog) on CodePen.

As you can see, we have a new 元素 div.球.

This 元素 can be anything, a div, an image, text, whatever. 在这个例子中的想法是,通过使用offset-路径和offset-distance,你可以给元素一个路径来跟随和动画距离,元素将通过路径移动.

SVG 动画s Using JavaScript

如果所有这些还不够花哨,那么您总是可以求助于JavaScript.

Animating SVG 元素s 使用JavaScript can be much like animating DOM 元素s. 然而, 使用JavaScript, you can achieve the animation techniques we have checked out above, 但是更容易.

Previously, we had to hardcode the 路径 lengths in our CSS. With the help of the JavaScript function 路径.getTotalLength () 可以即时计算路径的长度并根据需要使用它. 你可以了解更多 在这里.

除了, 已经有许多库可供您使用,它们可以使SVG动画变得比现在简单得多.

提前.svg not only makes it easy to draw SVG images using JavaScript, it makes animating them as simple as calling .动画({}).

另一个库, 动漫.js, lets you make a div 元素 follow an SVG 路径 with just a 几行代码.

如果你正在寻找一个库,它可以自己做更多的事情,但结果仍然令人惊叹, 然后 Vivus 是你要找的吗. It takes a different, more configuration-driven approach to SVG 路径 animation. 有了这个图书馆, 您只需要向要绘制的SVG元素添加一个ID,并使用该ID定义一个Vivus对象. Vivus will take care of the rest.

进一步的阅读

以下是在处理SVG图像并将其动画化时可能会发现有用的资源列表:

To go more in depth with SVG animation, you can read 这 short article on the SVG动画的三种方法 images 和 watch the video screencast by CSS Tricks.

本文没有介绍的一点是使用同步多媒体集成语言(SMIL)为SVG图像制作动画. 而将CSV用于SVG则为您提供了使用您已经熟悉的东西的优势, SMIL takes things to the next level.

使用SMIL,您可以单独使用SVG实现高级动画效果,例如形状变形. A short, yet effective guide to using SMIL for such effects is available 在这里.

Although, support for SMIL is a 前卫 at 这 moment (no pun intended).

No-compromise 动画s for the Web

在本文中, 您已经了解了使用SVG路径上的CSS或HTML元素为SVG元素制作动画的几种方法.

SVG是轻量级的,无论屏幕大小如何,都可以用来生成清晰的图形, 缩放级别, 屏幕分辨率. 使用SVG, 提供现代的, vivid experience now is easier than ever, all while reaping the benefits of using st和ard web technologies.

就是这样! 希望您觉得这个SVG动画教程很有用,并且喜欢阅读它.

进一步的阅读 on the Toptal 博客:

了解基本知识

  • What are the stroke-dasharray 和 stroke-dashoffset attributes?

    stroke-dasharray属性确定要用作SVG路径笔画的破折号和空格的模式. stroke-dashoffset决定路径笔划开始时进入模式的距离.

  • How can you determine the exact length of an SVG 路径?

    To determine the exact length of an SVG 路径, you can use the 路径.getTotalLength () function, w在这里 路径 is the DOM Node for the <路径> 元素.

标签

Hire a Toptal expert on 这 topic.
现在雇佣

胡安Calou

<路径 d="m2.3438,5.6562l-2.3438,2.3438,2.3438,2.3438v3.3137h3.3137l2.3425,2.3425,2.3425-2.3425h3.315v-3.315l2.3425-2.3425-2.3425-2.3425v-3.3137h-3.3138l-2.3437-2.3438-2.3438,2.3438h-3.3125v3.3125Zm5.0488,2.7528l2.754-2.7654.9705.9739-3.7245,3.7399-.9705-.9739-1.3672-1.3733.9705-.9752,1.3672,1.3739Z" fill="currentColor"><路径 class="text-white dark:text-transparent" clip-rule="evenodd" d="M10.1465 5.64374L7.39254 8.4091L6.02535 7.03518L5.05485 8.01039L6.42204 9.38364L7.39254 10.3575L11.117 6.61761L10.1465 5.64374Z" fill="currentColor" fill-rule="evenodd">验证专家 在工程
<路径 clip-rule="evenodd" d="M12.785 3.30422L8.19592 0.680947C7.8317 0.472777 7.41948 0.363281 7 0.363281C6.58052 0.363281 6.1683 0.472777 5.80408 0.680947L1.21446 3.30422C0.463414 3.73353 0 4.53222 0 5.3977V10.6014C2.84061e-05 11.0265 0.112371 11.444 0.325646 11.8116C0.538921 12.1793 0.845549 12.484 1.21446 12.6949L5.80408 15.3182C6.16837 15.5265 6.5807 15.636 7.00029 15.636C7.41987 15.636 7.8322 15.5265 8.19649 15.3182L12.785 12.6949C13.154 12.4841 13.4607 12.1794 13.6741 11.8117C13.8875 11.4441 13.9999 11.0265 14 10.6014V5.3977C13.9999 4.97258 13.8875 4.55504 13.6741 4.1874C13.4607 3.81975 13.154 3.51507 12.785 3.30422ZM5.09524 8.68011L4.60062 11.3333L7.19048 10.0807L9.78033 11.3333L9.28571 8.68011L11.381 6.80108L8.4854 6.41398L7.19048 4L5.89555 6.41398L3 6.80108L5.09524 8.68011Z" fill="currentColor" fill-rule="evenodd">17 的经验

布宜诺斯艾利斯,阿根廷

2016年12月20日成为会员

作者简介

Juan is a systems engineer since 2005. 他是一个渴望学习的人,一个多才多艺的开发人员,并且非常注重细节.

<路径 clip-rule="evenodd" d="M32.2841 4.61667C31.5969 3.86366 30.7379 3.4762 29.729 3.4762C28.7567 3.4762 27.7953 4.15609 27.1995 4.82502L27.2032 3.57124L25.3901 3.56758L25.3682 13.8574V13.9926L27.1922 13.9963L27.1995 10.7796C27.7515 11.3973 28.6214 11.7592 29.5901 11.7629C30.6575 11.7629 31.553 11.3827 32.2548 10.6334C32.964 9.88037 33.3222 8.81667 33.3259 7.59578C33.3295 6.3493 32.9786 5.34774 32.2841 4.61667ZM29.294 5.17228C29.9118 5.17228 30.4345 5.40622 30.8475 5.86314C31.2716 6.30544 31.4909 6.88664 31.4872 7.59212C31.4836 8.30126 31.2752 8.93729 30.8402 9.39787C30.4235 9.84016 29.9045 10.0668 29.2867 10.0668C28.6799 10.0668 28.1718 9.84382 27.7332 9.39421C27.3018 8.92998 27.0898 8.29395 27.0898 7.58481C27.0935 6.88298 27.3092 6.30178 27.7368 5.85583C28.1682 5.39526 28.6763 5.17228 29.2867 5.17228H29.294Z" fill="#262D3D" fill-rule="evenodd"><路径 clip-rule="evenodd" d="M34.2507 5.10654L34.2433 9.4491C34.2397 10.3849 34.4992 11.0538 35.0037 11.434C35.318 11.6716 35.7201 11.7922 36.1953 11.7922C36.5608 11.7922 37.1347 11.646 37.1347 11.646L36.9702 10.0632C36.9702 10.0632 36.5535 10.1984 36.3488 10.0522C36.1551 9.91333 36.0601 9.6209 36.0601 9.17495L36.0674 5.10654L37.7561 5.11019L37.7598 3.60053L36.071 3.59688L36.0747 1.42925L34.258 1.4256L34.2543 3.59322L32.7264 3.58957L34.2507 5.10654Z" fill="#262D3D" fill-rule="evenodd"><路径 clip-rule="evenodd" d="M19.3149 1.31226H10.341L10.3373 3.10703H13.9232L13.9086 11.4997V11.6642L15.8058 11.6679L15.7984 3.11069L19.3149 3.10703V1.31226Z" fill="#262D3D" fill-rule="evenodd"><路径 clip-rule="evenodd" d="M9.65013 5.90338L3.78329 0.0255737L2.41619 1.38171L4.41201 3.38119L0.0328979 7.74567L5.92167 13.6418L7.26684 12.3002L5.25274 10.2825L9.65013 5.90338ZM4.03551 8.7911C3.9953 8.80207 3.95509 8.80207 3.91488 8.7911C3.87467 8.78014 3.84178 8.76186 3.76867 8.68875L2.97546 7.89189C2.906 7.82244 2.88407 7.78588 2.87311 7.74567C2.86214 7.70546 2.86214 7.66526 2.87311 7.62505C2.88407 7.58484 2.90235 7.55194 2.97546 7.47883L5.47572 4.98223C5.54517 4.91278 5.58172 4.89085 5.62193 4.88353C5.66214 4.87257 5.70235 4.87257 5.74256 4.88353C5.78277 4.8945 5.81567 4.91278 5.88877 4.98588L6.68198 5.78275C6.75144 5.8522 6.77337 5.88876 6.78068 5.92896C6.79164 5.96917 6.79164 6.00938 6.78068 6.04959C6.76971 6.0898 6.75144 6.1227 6.67833 6.1958L4.17807 8.69241C4.10862 8.76186 4.07572 8.77648 4.03551 8.7911Z" fill="#204ECF" fill-rule="evenodd"><路径 clip-rule="evenodd" d="M23.5259 4.66425C22.7838 3.89662 21.7713 3.4726 20.7332 3.50185C19.6841 3.50185 18.7593 3.87104 17.988 4.59845C17.2057 5.33318 16.8073 6.34936 16.8073 7.62508C16.8073 8.9008 17.2021 9.91699 17.9807 10.6554C18.7556 11.3864 19.6804 11.7593 20.7295 11.7629C20.7697 11.7666 20.8099 11.7666 20.8501 11.7666C21.8298 11.7666 22.8021 11.3462 23.5185 10.6152C24.0413 10.0778 24.6663 9.12743 24.67 7.64336C24.6736 6.15929 24.0486 5.20524 23.5259 4.66425ZM22.952 7.6397C22.9483 8.37808 22.7326 8.98853 22.3013 9.45641C21.8736 9.92064 21.3399 10.1546 20.7185 10.1546C20.1081 10.1509 19.5781 9.91699 19.1504 9.4491C18.7337 8.99218 18.518 8.38174 18.518 7.63239C18.518 6.88304 18.7337 6.2726 19.154 5.81568C19.5817 5.35145 20.1118 5.11751 20.7222 5.11751C21.3436 5.11751 21.8773 5.35511 22.305 5.82299C22.7363 6.28722 22.9556 6.89767 22.952 7.6397Z" fill="#262D3D" fill-rule="evenodd"><路径 clip-rule="evenodd" d="M39.8287 6.3859C39.8287 5.92167 40.07 4.90549 41.4115 4.90549C41.8867 4.90549 42.1572 5.06632 42.3838 5.2564C42.6032 5.43917 42.7128 5.88878 42.7128 6.26162V6.43708L40.4977 6.78434C38.7431 7.05118 37.7379 7.99426 37.7306 9.37598C37.7269 10.0924 37.9901 10.7065 38.4836 11.1561C38.9734 11.5984 39.6387 11.836 40.4282 11.836C41.4225 11.836 42.1682 11.4778 42.7019 10.7394C42.7055 11.0538 42.7055 11.3682 42.7055 11.6606H44.5515L44.5624 6.35301C44.5661 5.48669 44.281 4.64961 43.7253 4.18904C43.1734 3.73577 42.4533 3.50183 41.4115 3.50183H41.3969C40.6 3.50183 39.7556 3.71384 39.1891 4.20366C38.5201 4.7812 38.1911 5.6987 38.1911 6.40784L39.8287 6.3859ZM40.6658 10.246C40.0115 10.2423 39.5838 9.86946 39.5875 9.29557C39.5911 8.69974 40.0042 8.35248 40.8924 8.20261L42.7128 7.89557V7.91384C42.7092 9.28825 41.8684 10.246 40.6731 10.246H40.6658V10.246Z" fill="#262D3D" fill-rule="evenodd"><路径 clip-rule="evenodd" d="M45.4397 1.43286L45.425 11.6057V11.6532L47.059 11.6569L47.0773 1.48038V1.43652L45.4397 1.43286Z" fill="#262D3D" fill-rule="evenodd"><路径 clip-rule="evenodd" d="M48.5284 10.436C48.5284 10.0997 48.6454 9.8073 48.8867 9.56604C49.1279 9.32479 49.4167 9.20416 49.7493 9.20416C50.0856 9.20416 50.3817 9.32479 50.6193 9.56604C50.8606 9.8073 50.9812 10.0961 50.9812 10.436C50.9812 10.7796 50.8606 11.0647 50.6193 11.2987C50.3781 11.5399 50.0893 11.6569 49.7493 11.6569C49.4094 11.6569 49.1206 11.5399 48.8867 11.2987C48.6491 11.0647 48.5284 10.7796 48.5284 10.436ZM48.7331 10.436C48.7331 10.7211 48.8282 10.966 49.0292 11.1707C49.2266 11.3681 49.4679 11.4705 49.7566 11.4705C50.0418 11.4705 50.283 11.3681 50.4804 11.1707C50.6778 10.9697 50.7801 10.7284 50.7801 10.436C50.7801 10.1472 50.6778 9.90599 50.4804 9.7086C50.283 9.50756 50.0418 9.40521 49.7566 9.40521C49.4715 9.40521 49.2303 9.50756 49.0329 9.7086C48.8318 9.90599 48.7331 10.1472 48.7331 10.436ZM50.0454 11.1049L49.7164 10.5201H49.4935V11.1049H49.2924V9.76343H49.8371C50.1076 9.76343 50.2684 9.92427 50.2684 10.1436C50.2684 10.33 50.1295 10.4726 49.9394 10.5091L50.2721 11.1013H50.0454V11.1049ZM49.4935 9.94254V10.3519H49.8078C49.9833 10.3519 50.0673 10.2861 50.0673 10.1509C50.0673 10.012 49.9796 9.94254 49.8078 9.94254H49.4935Z" fill="#262D3D" fill-rule="evenodd">作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.

World-class articles, delivered weekly.

By entering your email, you are agreeing to our 隐私政策.

World-class articles, delivered weekly.

By entering your email, you are agreeing to our 隐私政策.

Toptal开发者

加入总冠军® 社区.