<路径 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">authors are vetted experts in their fields 和 write on topics in which they have demonstrated experience. All of our content is peer reviewed 和 validated by Toptal experts in the same field.
<路径 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自2005年起担任系统工程师. He is an eager learner, a versatile developer, 和 has great attention to detail.

Any front-end engineer worth their salt is aware of the challenges that the fragmented ecosystem of devices brings. 不同的屏幕尺寸, 决议, 而且长宽比也很难提供一致的体验. 对于那些想要提供完美像素体验的人来说更是如此.

可缩放矢量图形 (SVGs) help in solving a part of that problem, 和 do it very well. 尽管它们有其局限性, svg在某些场合非常有用, 如果你有一个优秀的设计团队, you can also create a more visually stunning experience without putting undue burden the web browser or hampering the load times.

在过去的几个月, I have been working on a project that is making extensive use of SVG 和 its animation 和 effect capabilities. 在本文中, I will share how you can use SVG 和 its animation techniques to bring some new life to your web front-end work.

可缩放矢量图形

SVG是一种基于XML的图像格式,与HTML的工作原理非常相似. It defines different 元素s for a number of familiar geometric shapes that can be combined in the markup to produce two-dimensional graphics.

SVG规范 是万维网联盟(W3C)于1999年制定的开放标准.

所有主要的网络浏览器都有 SVG渲染支持 有一段时间了.

因为SVG图形是XML文档, web browsers provide DOM node-based APIs that can be used to interact with the images. 谈论 让图片栩栩如生!

SVG路径

如果SVG中有一个强大的元素,那就是 <路径> 元素.

的 路径 元素 is a basic shape that may be used to create almost any advanced 2D shape you can imagine.

元素通过接受一系列绘图命令来工作. 它很像1967年的Logo编程语言, 只有现代化和设计花哨的图形. 元素通过属性接受这一系列的绘图命令 d.


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

你可以想象一支在屏幕上画画的虚拟笔, 路径元素中的绘图注释仅控制笔. 在上面的例子中,笔被指示移动到某个位置 (10, 10) (M10 10),划清界限 (75, 10) (L75 10),划清界限 (75, 75) L75 75 然后通过返回起点来关闭路径(Z).

使用其他绘图命令,例如arcs (A)、二次贝塞尔曲线(Q)、三次贝塞尔曲线(C)等,您可以在SVG中创建更复杂的形状和图形.

您可以了解更多关于路径元素的信息 在这里.

SVG路径和CSS

“好吧,胡安,我明白了. 路径是强大的,但我如何动画它们?你说.

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

stroke-dasharray 属性控制用于描边路径的破折号和空白的模式. If you wanted to draw your lines as a group of dashes 和 gaps instead of one continuous stroke of ink, 这是您将使用的属性.

使用SVG images being a part of the web browser’s DOM 和 stroke-dasharray being a presentation 元素, 该属性也可以使用CSS设置.

类似地, stroke-dashoffset attribute (which specifies how far into the dash pattern to start the dash) can also be controlled using CSS.

这两个SVG属性, 在一起, 可以用来动画SVG路径, 给观众一种错觉,即路径是逐渐绘制的.

以二次贝塞尔曲线为例:

<路径 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="路径">

To animate 这 路径 as if it is being drawn gradually 和 smoothly on the screen, 我们必须设置破折号(和间隙)长度, 使用stroke-dasharray属性, 等于路径长度. This is so that the length of each dash 和 gap in the dashed curve is equal to the length of the entire 路径.

Next, we will set the dash offset, using the stroke-dashoffset attribute, to 0. This will make the 路径 appear on screen as a solid curve (we are essentially looking at the first dash, 我们已经让每个破折号跨越了曲线的整个长度). 通过将虚线偏移量设置为曲线的长度, we will end up with an invisible curve (we are now looking at the curve being rendered as an entire gap—the part that immediately follows a dash).

Now by animating the stroke-dashoffset property, you can make the curve appear on screen gradually.

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

如你所见,曲线总是存在的. 我们只是改变了虚线偏移量,使虚线部分一点一点地出现.

You can take 这 a step further by using the same principle but with more 路径s:

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

这里有一条固定的黑色曲线, 沿着小路移动的红色的, 红色的后面还有一个黑色的,在40px后面.

Stroke-dasharray 和 stroke-dashoffset are two very powerful attributes that can be used to apply a plethora of animations 和 effects to your SVG 路径s. 你可以试试 方便的工具,您可以使用它来试验这两个属性.

沿着SVG路径动画对象

使用SVG 和 CSS, another cool thing you can do is animate objects or 元素s following a 路径.

我们将在动画中使用2个SVG属性:

  • offset-路径: 的 offset-路径 CSS property specifies the offset 路径 w在这里 the 元素 gets positioned.

  • offset-distance: 的 offset-distance CSS property specifies a position along an offset-路径.

By combining these two properties, you can come up with animations like 这 easily:

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

如你所见,我们有了一个新元素 div.球.

这个元素可以是任何东西,div,图像,文本,等等. 的 idea in 这 example is that with the use of offset-路径 和 offset-distance you can give the 元素 a 路径 to follow 和 animate the distance 和 the 元素 will move through the 路径.

使用JavaScript的SVG动画

If all of these are not fancy enough already, you can always resort to JavaScript.

用JavaScript为SVG元素制作动画与为DOM元素制作动画非常相似. 然而, 使用JavaScript, 你可以实现我们上面检查的动画技术, 但是更容易.

以前,我们必须在CSS中硬编码路径长度. 借助JavaScript函数 路径.getTotalLength () it is possible to calculate the length of the 路径 on-the-fly 和 use it as needed. 你可以了解更多 在这里.

除了, a number of libraries are already at your disposal that can make SVG animations a lot easier than it already is.

提前.svg 不仅使使用JavaScript绘制SVG图像变得容易, 这使得动画就像打电话一样简单 .动画({}).

另一个库, 动漫.js,使div元素跟随SVG路径 几行代码.

If you are looking for a library that does more on its own but makes the results still look stunning, 然后 Vivus 是你要找的吗. 它采用一种不同的、更多由配置驱动的方法来实现SVG路径动画. 有了这个图书馆, you just have to add an ID to the SVG 元素 you want to draw 和 define a Vivus object with that ID. 维乌斯会处理好剩下的.

进一步的阅读

Below are a list of resources that you may find useful when dealing with SVG images 和 animating them:

要更深入地了解SVG动画,可以阅读web上的这篇短文 SVG动画的三种方法 图片和观看视频截屏由CSS技巧.

One thing 这 article didn’t cover is animating SVG images with Synchronized Multimedia Integration Language (SMIL). While using CSV for SVG gives you the advantage of working with something you are already familiar with, SMIL将事情带到了下一个层次.

With SMIL, you can implement advanced animation effects such as shape morphing using SVG alone. 关于如何使用SMIL实现这种效果,有一个简短而有效的指南 在这里.

尽管如此,对SMIL的支持仍然是一个问题 前卫 此时此刻(没有双关语).

不妥协的网络动画

在本文中, you have gone through several ways you can animate SVG 元素s using CSS or HTML 元素 on SVG 路径s.

SVG is lightweight 和 can be used to produce sharp graphics regardless of screen size, 缩放级别, 屏幕分辨率. 使用SVG, 提供现代的, 生动的体验现在比以往任何时候都容易, 同时获得使用标准web技术的好处.

就是这样! Hopefully you have found 这 SVG animation tutorial useful 和 enjoyed reading it.

关于总博客的进一步阅读:

了解基本知识

  • 什么是stroke-dasharray和stroke-dashoffset属性?

    的 stroke-dasharray attribute determines the pattern of dashes 和 gaps to be used as the stroke for an SVG 路径. 的 stroke-dashoffset determines the distance into the pattern from which the 路径’s stroke will start.

  • 如何确定SVG路径的确切长度?

    要确定SVG路径的确切长度,可以使用路径.getTotalLength ()函数,其中路径是对象的DOM Node <路径> 元素.

标签

聘请Toptal这方面的专家.
现在雇佣

胡安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自2005年起担任系统工程师. He is an eager learner, a versatile developer, 和 has great attention to detail.

<路径 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">authors are vetted experts in their fields 和 write on topics in which they have demonstrated experience. All of our content is peer reviewed 和 validated by Toptal experts in the same field.

世界级的文章,每周发一次.

输入您的电子邮件,即表示您同意我们的 隐私政策.

世界级的文章,每周发一次.

输入您的电子邮件,即表示您同意我们的 隐私政策.

Toptal开发者

加入总冠军® 社区.