W SVG transform
nie jest przyspieszane sprzętowo. Mają mniej więcej taką samą wydajność dla pojedynczych elementów (z mojego doświadczenia). Jednakże, używam transform
więcej, aby przenieść rzeczy wokół, ponieważ w SVG nie wszystkie elementy mają x
lub y
atrybuty, należy rozważyć ...
<line x1="0" y1="0" x2="100" y2="100" />
<circle cx="100" cy="100" r="100" />
<path d="M 0 0 L 100 100" />
<rect x="0" y="0" width="100" height="100" />
Musisz napisać inną implementację każdego z tych elementów, jeśli nie używasz transform
. Jednym z obszarów, gdzie transform
jest rzeczywiście szybciej porusza się wiele elementów, jeśli masz ...
<g transform="translate(100, 100)">
<line x1="0" y1="0" x2="100" y2="100" />
<circle cx="100" cy="100" r="100" />
<path d="M 0 0 L 100 100" />
<rect x="0" y="0" width="100" height="100" />
</g>
To będzie mniej intensywny niż przetwarzanie porusza każdego elementu indywidualnie
jest powiedziane, że przekształcać zmusza przeglądarkę używać gpu do renderowania rzeczy. Zauważyłem zauważalną różnicę w przeglądarkach z Androidem za pomocą transform3d. Ale z innymi, występ był taki sam. –
@ParthikGosar nie można "transform3d" elementów w SVG. – Duopixel