SVG-ni internetdə istifadəyə hazırlamaq çox sadə prosesdir, JPEG və ya PNG-ni ixrac etməkdən daha mürəkkəb deyil. İstifadə etməyi planlaşdırdığınız şəkil ölçüsündə tanış olduğunuz qrafik redaktordan istifadə edin (Illustrator, Sketch, Inkscape [pulsuz] və s. [və ya hətta forma təbəqələrindən istifadə edirsinizsə Photoshop]). Mən adətən Illustrator proqramında işləyirəm, ona görə də həmin proqramda faylları hazırlamağın bəzi yollarını izah edəcəyəm, lakin onlar ümumiyyətlə istənilən proqrama aiddir. Mətninizi əyrilərə çevirmək istəyə bilərsiniz, çünki səhifədə istifadə olunan veb şriftlə üslub etməyi planlaşdırmasanız (bu mümkündür!). Bütün obyektləri tək formalara çevirmək də yaxşı fikir deyil, xüsusən də səhifədə manipulyasiya edilməli olan vuruşlarınız varsa, xüsusən də obyektləri çevirmək çox vaxt fayl ölçüsünü azaltmadığı üçün. Qruplara və ya təbəqələrə təyin edilmiş hər hansı adlar element ID kimi SVG-yə əlavə olunacaq. Bu üslub üçün olduqca rahatdır, lakin artıracaq ümumi ölçü fayl.
Eksport etməzdən əvvəl, bütün şəkillərin tam piksel şəbəkəsində olduğunu yoxlamaq lazımdır (yəni, məsələn, 23.3px × 86.8px deyil). Əks halda, çox güman ki, şəkil kifayət qədər aydınlığa malik olmayacaq və şəklin bir hissəsi kəsiləcək. Illustrator-da bunu aşağıdakı kimi etmək olar: Obyekt > İş lövhələri > İncəsənət İşi Sərhədlərinə Sığdır. Sonra "Farklı saxla" düyməsini basın və SVG-ni seçin və standart parametrləri tərk edin. Burada edə biləcəyimiz bir az optimallaşdırma var, lakin daha sonra müxtəlif təkmilləşdirmə üsullarından istifadə edəcəyimiz üçün bu, həqiqətən də buna dəyməz, ona görə də hələlik bu düzəlişlərə vaxt sərf etməyəcəyik.
Fayl ölçülərini azaltmaq üçün fəndlər.
(Optimallaşdırmaya baxın)
Ən kiçik SVG ölçüsünə nail olmaq üçün ondan lazımsız hər şeyi silmək məntiqli olardı. Ən məşhur və faydalı proqram(Tərəfindən ən azı Məncə) SVG-nin işlənməsi üçün SVGO-dur. Hamısını silir tələb olunan kod. Amma! SVG-ni CSS/JS ilə manipulyasiya etməyi planlaşdırırsınızsa, bu proqramı istifadə edərkən diqqətli olun, çünki o, kodu həddindən artıq təmizləyə və gələcək dəyişiklikləri çətinləşdirə bilər. SVGO-nun başqa bir rahatlığı ondan ibarətdir ki, o, avtomatik olaraq layihənin qurulması prosesinə daxil edilə bilər, lakin siz də istifadə edə bilərsiniz. GUIƏgər sən istəsən.
ilə daha ətraflı başa düşmək düzgün çıxarılması lazımsız hər şey, başqa bir şey edə bilərik qrafik redaktoru. Əvvəlcə mümkün qədər az yol/şəkil, eləcə də bu yollardakı nöqtələrdən istifadə etdiyinizə əmin olmalısınız. Sadələşdirilə bilən hər şeyi birləşdirə və sadələşdirə və hər şeyi silə bilərsiniz lazımsız nöqtələr. Illustrator-da Smart Sil Fırça Aləti ilə VectorScribe plagin var ki, bu da xalları silmək və yenə də tərk etməkdə kömək edəcək. ümumi forma Eyni.
İlkin optimallaşdırma
Ağıllı Sil Fırça Aləti xalları silin
Sonra şəkli böyüdəcəyik. Illustrator-da piksel şəbəkəsi ilə Görünüş > Pikselin Önizləməsini yandırmaq və konturların necə yerləşdirildiyini yoxlamaq rahatdır. Konturları şəbəkəyə yerləşdirmək bir az vaxt aparacaq, lakin səylər öz bəhrəsini verəcək və daha təmiz göstərmə ilə nəticələnəcək (əvvəlcədən buna diqqət yetirmək daha yaxşıdır).
Şəbəkədən kənar nöqtələr
Şəbəkəyə uyğunlaşdırın
Hizalanacaq iki və ya daha çox obyekt varsa, o zaman bütün lazımsız üst-üstə düşmələri aradan qaldırmağa dəyər. Bəzən konturlar diqqətlə hizalansa belə, nazik ağ xətt görünə bilər. Bunun qarşısını almaq üçün obyektlərin üst-üstə düşdüyü yerlərdə bir az üst-üstə düşə bilərsiniz. Əhəmiyyətli: SVG-də z-indeksinin müəyyən bir sırası var, bu, aşağıdakı obyektdən asılıdır, ona görə də yuxarıdakı obyekti kodda faylın aşağı hissəsində yerləşdirməyə dəyər.
Və nəhayət, nəhayət, ümumiyyətlə unudulan bir şey, .htaccess faylında saytınızda SVG-nin gzip sıxılmasını aktivləşdirməkdir.
AddType image/svg+xml svg svgz
Bu texnikanın nə qədər effektiv olduğuna misal olaraq, mən orijinal Breaking Borders loqosunu götürəcəyəm və onu bu şəkildə optimallaşdıracağam: ölçüsünü olmalıdır qədər artırın; konturları qaydasına salacağam; Mümkün qədər çox xal siləcəyəm; nöqtələri tam piksellərlə köçürün; Bütün üst-üstə düşən sahələri köçürəcəyəm və hamısını SVGO-ya göndərəcəyəm.
Orijinal: 1.413b
Optimallaşdırmadan sonra: 409b
Nəticədə, fayl ölçüsü ~ 71% kiçik oldu (və sıxılmış zaman ~ 83% kiçik)
Bu gün SVG animasiyasını yaratmağın birdən çox yolu var. Bu, birbaşa SVG koduna daxil edilən etiketdən istifadə etməklə edilə bilər. Snap.svg və ya SVG.js kimi xüsusi kitabxanalar var.
Biz bir az fərqli yanaşmaya baxacağıq: daxili SVG (SVG kodu birbaşa HTML-də) və animasiyadan istifadə fərdi hissələr birbaşa CSS vasitəsilə.
Mən bu yaxınlarda mənim alma mater Wufoo üçün bir layihədə bu metodu sınaqdan keçirdim, burada əhatə edəcəyimiz mövzuda bir az təkmilləşdirmə kimi.
Mən son layihələrimdə SVG-dən çox istifadə etməmişəm, ona görə də düşünürəm ki, bu məqalə ona daha çox diqqət yetirmək üçün əla fürsətdir.
Son animasiya görünüşü çox sadədir. Göründüyü kimi:
CodePen-də baxın
Bunun necə edildiyinə baxaq.
1. İstifadə edəcəyimiz elementlərin siyahısını tərtib edin
Görünə bilər ki, burada bayquşun necə çəkiləcəyi ilə bağlı çox iş var, amma bu məqalə animasiya haqqındadır, ona görə də qrafika ilə mümkün qədər tez məşğul olaq.
Planım onların klassik loqotipindən, rənglərindən və istifadə edərək super sadə Wufoo reklamı etmək idi korporativ üslub. Və sonra bir az yaradıcılıq əlavə edin:
- Hərflərin səhifədən çıxması effekti yaradın. Wufoo əyləncəli sözdür, hərflər də əyləncəli olsun;
- Bir gün əvvəl ön tərəfində dinozavr, arxasında isə sözləri olan köynək hazırladıq: “ Tez. Ağıllı. Qroznı" Bunlar həm dinozavrların, həm də Wufoo-nun paylaşdığı xüsusiyyətlərdir. “FORMidble” (möhtəşəm) sözü ilə oynadığımızı demirəm. Ona görə də bu sözlərin animasiya blokunda görünüb yox olmasını istədim;
- Bu sözləri dinozavrla əlaqələndirmək üçün T-Reksin başı görünəcək və sonra tez yox olacaq. Bu, elementlər üçün başqa bir maraqlı keçid olacaq "Sürətli" sözünü göstərəcək.
- Bütün bu elementləri Illustrator-a yüklədim:
Loqo və şüar mətnlərinin necə təsvir olunduğuna diqqət yetirin. Bu o deməkdir ki, onlar sadəcə vektor formalarıdır və effektlər həm SVG-də, həm də onlara asanlıqla tətbiq oluna bilər
Gördüyünüz mətn “Sürətli. ” mətn formatında Illustrator-da qalır.
Mən faylı Illustrator-da saxladığım zaman hərf element olaraq qalacaq.
2. SVG formatında yadda saxlayın
Illustrator SVG kimi saxlamağı dəstəkləyir:
Siz bu SVG faylını kod redaktorunda aça və içindəki SVG koduna baxa bilərsiniz:
3. SVG-ni təmizləyin və formalar üçün siniflər təyin edin
Siz kodu optimallaşdırmaq və təmizləmək üçün SVGO vasitəsilə işlədə bilərsiniz lazımsız elementlər DOCTYPE və s. yazın.
Amma indi bizim üçün daha vacib olan formalara müxtəlif sinif adları verməkdir ki, biz onları CSS-də seçə bilək və fərqli işlər görə bilək!
4. SVG daxil edin
Siz bu SVG kodunu kopyalaya və blokun görünməsini istədiyiniz yerə birbaşa HTML-yə yapışdıra bilərsiniz. Ancaq bu sadəcə primitiv bir şablondur.
Bu kimi bir şey edə bilərsiniz:
5. Animasiya!
İndi bütün bu formalar DOM-a daxil edilir və biz onları hər hansı digər kimi yerləşdirə və üslublar təyin edə bilərik HTML elementi. Gəl bunu edək.
Deyək ki, biz 10 saniyəlik qrafikdən istifadə etmək istəyirik:
İlk sözlər düşür və yox olur
Etmək istədiyimiz ilk şey sözləri çap etməkdir " Tez. Ağıllı. Qroznı.» Hər söz bir saniyə göstəriləcək.
Hər sözün vaxtın 10%-ni aldığı animasiyanı belə yaradırıq:
@keyframes gizlədir ( 0% ( qeyri-şəffaflıq: 1; ) 10% ( qeyri-şəffaflıq: 1; ) 15% ( qeyri-şəffaflıq: 0; ) 100% ( şəffaflıq: 0; ) )
Sonra ilk sözü və bütün animasiyanın müddətini 10 saniyəyə təyin edirik (bunun 10%-i 1 saniyədir):
Mətn-1 (animasiya: 10s asanlığı sonsuz şəkildə gizlədir; )
Növbəti iki söz əvvəlcə gizlənəcək (şəffaflıq: 0; ) və sonra biz eyni animasiyadan istifadə edəcəyik, yalnız vaxt gecikməsi ilə, belə ki, növbəti sözlər bir az sonra görünəcək:
Mətn-2 (şəffaflıq: 0; animasiya: gizlətmə 10s 1.5s asanlıq sonsuz; ) .text-3 (şəffaflıq: 0; animasiya: gizlətmə 10s 3s asanlıq sonsuz; )
Hər növbəti sözün çıxışı arasındakı intervalı təyin etmək üçün əlavə 0,5 saniyə lazımdır.
Atlayan hərflər
Bu element üçün animasiya qurduqdan sonra Wufoo sözündəki hərflər üçün effektlərə keçirik ki, bu da bu şəkildə yan tərəfə keçməlidir:
Burada hiylə odur ki, biz yaradırıq animasiya effekti, bu yalnız 5 saniyə davam edir, lakin biz onu bir dəfə irəli, sonra isə əks istiqamətdə qaçırıq.
Beləliklə, o, bizim 10 saniyəlik qrafikimizə uyğun olacaq və zaman çizelgesinin ortasında yerləşəcək. Etməli olduğumuz şey animasiya effektini bir istiqamətə sürüşdürmək üçün parametrləri təyin etməkdir, çünki nə vaxt tərs sürüşdürün sadəcə olaraq ilkin vəziyyətinə qayıdacaq.
Hər hərf üçün effektlərin bir qədər gecikməsi var, buna görə də hamısı eyni vaxtda deyil, bir-birinin ardınca hərəkət edir:
Wufoo-məktub ( animasiya: kaboom 5s asan alternativ sonsuz; &:nth-child(2) ( animasiya gecikməsi: 0.1s; ) &:nth-child(3) ( animasiya gecikməsi: 0.2s; ) &:nth- child(4) ( animasiya gecikməsi: 0,3s; ) &:nth-child(5) ( animasiya gecikməsi: 0,4s; ) ) @keyframes kaboom ( 90% ( transform: miqyas(1,0); ) 100% ( transform : miqyas (1.1);
Yuxarıdakı SCSS kodu qısa bir versiyadır, prefiksləri ehtiva etmir (buna praktikada ehtiyacınız olacaq).
Düşünürəm ki, animasiya gecikməsi orijinal CSS-dən götürmək üçün faydalı ola biləcək bir xüsusiyyətdir. Hərflər bir az gecikmə ilə hərəkət etdikdə daha səliqəli görünərdi.
Və nəhayət, dinozavr
Bu yazılar blok boyunca yanıb-sönəndən sonra aşağıdan dinozavrın başı çıxır. Baxmayaraq ki, dinozavr fiqurundan ibarətdir böyük miqdarda elementləri, biz bütün bu elementləri ehtiva edən yerləşdirmə etiketindən (qrup) istifadə edərək, hamısını birlikdə yerləşdirə bilərik.
Animasiyanı yerləşdirmək üçün çevirmələrdən istifadə etmək daha səmərəli olduğundan, biz bunu açar kadrlardan istifadə edərək edəcəyik:
@keyframes popup ( 0% ( transform: translateY(150px); ) 34% ( transform: translateY(20px); ) 37% ( transform: translateY(150px); ) 100% ( transform: translateY(150px); ) )
Biz bu animasiyanın təxminən 3 saniyə ərzində "son"da göstərilməsini istəyirik. Bu dövr əslində bütün 10 saniyə ərzində işləyir, lakin siz son 3 saniyə ərzində faktiki görünən effektləri görəcəksiniz.
TranslateY(150px) effekti tətbiq edildikdə, dinozavr qutudan kənarda o qədər aşağı hərəkət edir ki, siz onu görə bilməzsiniz.
Lakin bu animasiya vaxtının 37%-də (təxminən 3 saniyə) siz onun yavaş-yavaş yuxarı qalxdığını və sonra sürətlə aşağıya doğru hərəkət etdiyini görürsünüz.
Bu animasiyanı tətbiq etdikdə əmin olacağıq ki:
- Dinozavr əvvəlcə gizlənir;
- Bu animasiya fraqmentinin çıxışı vaxtında gecikir, ona görə də loqo sözündəki hərflər öz rəqslərini bitirdikdən dərhal sonra başlayır (yan tərəfə keçib öz yerinə qayıtdılar).
Trex (çevir: translateY(150px); animasiya: pop-up 10s 6.5s rahatlıq sonsuz; )
Dinozavr son saniyədə yerə yıxılır ki, dərhal sonra blokda yenidən “Sürətli” sözü görünəcək (animasiya oxutma intervalı sonsuz olaraq təyin olunub ki, o, təkrar-təkrar bir dairədə hərəkət etsin). Bu, bəzi əyləncəli sinerji əlavə edir.
6. Blokun kliklənən/interaktiv reklama çevrilməsi
Biri faydalı xüsusiyyətlər SVG keyfiyyətini itirmədən obyektləri istənilən ölçüdə miqyaslandırmaq qabiliyyətidir.
Şəkillərin orijinal keyfiyyətini qoruyaraq daxili SVG qutusu yaratmaq üçün biz ol' padded qutu texnikasından istifadə edə bilərik.
.wufoo-ad-wrap ( hündürlük: 0; padding-top: 100%; mövqe: nisbi; ) .wufoo-ad ( mövqe: mütləq; yuxarı: 0; sol: 0; en: 100%; hündürlük: 100%; )İdeya ondan ibarətdir ki, "sarğı" həmişə genişliyinə görə kvadrat şəklini alacaq. Sonra soruşuruq mütləq dəyərlərÖlçüləri eninə görə tənzimlənən bu mükəmməl kvadratın içərisində SVG mövqeləri.
Bu bir reklam olduğundan (təbii ki, tıklanabilir olmalıdır), daha sonra ehtiva edən konteyner kimi, əvəzinə
Hazırlayan: Evgeni Ryzhkov Nəşr tarixi: 27/08/2010
Son yeniləmə: 11/17/2010
Tapşırıq
HTML səhifəsində SVG şəklini göstərin.
Bunu etmək üçün bir neçə yol var, lakin onların hamısı cross-brauzer deyil.
iframe vasitəsilə SVG
Çoxları üçün çərçivənin olması artıq bu üsula son qoyur. Hal-hazırda bu problemi həll etmək üçün daha inkişaf etmiş üsullar var. Bundan əlavə, bu formada şəffaf şəkilləri həyata keçirmək mümkün olmayacaq (çərçivənin fonu var) və xarici skriptlərdən şəklin elementlərinə giriş də yoxdur.
Obyekt vasitəsilə SVG
Bizdə var: etibarlı təmiz kod, alternativ mətn, burada istifadəçiyə şəkilləri görmədikdə nə etməli olduğuna dair təlimat verə bilərsiniz (məsələn, onu normal brauzerin saytına göndərin və ya plaginə keçid verin, quraşdırılması ona kömək edəcək). Bu tətbiq SVG təsvirində şəffaflığı dəstəkləyir (baxmayaraq ki, IE-də problem var: şəffaf sahələr ağ rənglə doldurulacaq). Minuslardan: xarici skriptlərlə (HTML-dən) şəkillərə təsir etmək üçün heç bir yol yoxdur, yalnız SVG faylının özündə olanlar.
Metod fon şəkilləri və ya hər hansı statik şəkillər üçün yaxşıdır.
embed vasitəsilə SVG
Bu üsul HTML-dəki skriptlərə SVG faylının məzmunu ilə qarşılıqlı əlaqə yaratmağa imkan verir (hələ buna nail ola bilməmişəm). IE üçün wmode atributuna malikdir (
Bu üsul indi çox populyardır.
HTML kodunda SVG
- İstifadə olunan ad sahəsinə diqqət yetirməlisiniz: xmlns:svg="http://www.w3.org/2000/svg">;
- sənəd xhtml formatında olmalıdır (yerli olaraq .xhtml uzantılı fayldır)
- Bu metodun brauzerlər arası uyğunluğu zəifdir. IE-nin cavabı xüsusilə pisdir;
- html kodu inanılmaz dərəcədə çirklənir.
İndi bu üsuldan istifadə etməmək daha yaxşıdır.
Qeyd
IE, o cümlədən 8 versiyaları SVG-ni dəstəkləmir. O zaman Microsoft öz formatını - VML-ni fəal şəkildə təbliğ edirdi. Buna görə də, SVG şəklini orada görmək üçün bu brauzerlə işləməli olacaqsınız (bu barədə daha çox növbəti məqalələrdə).
Parlaq gələcək
Göründüyü kimi, yaxın gələcəkdə SVG formatı veb tərtibatçılarının həyatına hərtərəfli daxil olacaq. Bunu təsdiqləmək üçün siz artıq SVG-nin həyata keçirilməsinin maraqlı yollarının təsvirlərini tapa bilərsiniz. Brauzer tərtibatçıları deyirlər ki, onların yaradıcılığının yeni versiyaları aşağıdakı SVG inteqrasiya üsullarının bir qismini və ya hamısını dəstəkləyəcək.
9 cavab
Şəklin rəngini bu şəkildə dəyişə bilməzsiniz. SVG-ni şəkil kimi yükləsəniz, onun brauzerdə CSS və ya Javascript istifadə edərək necə göstərildiyini dəyişə bilməyəcəksiniz.
SVG şəklini dəyişdirmək istəyirsinizsə, onu istifadə edərək yükləməlisiniz
Səhifədə metodlardan istifadə etmək istəyirsinizsə, sizə Modernizr kitabxanası lazımdır, burada SVG dəstəyini yoxlaya və şərti olaraq əks təsviri göstərə və ya istifadə edə bilməzsiniz. Daha sonra SVG-ni yerləşdirə və istədiyiniz üslubları tətbiq edə bilərsiniz.
#zaman-3-ikonası ( doldurun: yaşıl; ) .my-svg-alternativ ( ekran: heç biri; ) .no-svg .my-svg-alternate ( displey: blok; en: 100px; hündürlük: 100px; fon şəkli : url (şəkil.png)
Siz SVG-ni yerləşdirə, ehtiyat şəklinizi sinif adı ilə etiketləyə bilərsiniz (my-svg-alternate):
Və CSS-də SVG dəstəyini sınamaq üçün Modernizr-dən (CDN: http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.7.2.js) no-svg sinifindən istifadə edin. SVG dəstəyi yoxdursa, SVG bloku nəzərə alınmayacaq və şəkil göstəriləcək, əks halda şəkil DOM ağacından silinəcək (ekran: heç biri):
My-svg-alternate ( display: none; ) .no-svg .my-svg-alternate ( displey: blok; en: 100px; hündürlük: 100px; fon şəkli: url(image.png); )
Sonra daxili elementinizin rəngini dəyişə bilərsiniz:
#zaman-3-ikonası (doldurun: yaşıl; )
İstənilən SVG-nin rəngini dəyişmək üçün siz birbaşa svg kodunu dəyişə bilərsiniz , açılış svg faylı hər hansı birində mətn redaktoru . Kod belə görünə bilər:
Var olduğunu fərq edə bilərsiniz bəziləri XML teqləri, məsələn, yol, dairə, çoxbucaqlı və s.. Orada atributdan istifadə edərək öz rənginizi əlavə edə bilərsiniz üslub. Aşağıdakı nümunəyə baxın
Bütün teqlərə stil atributunu əlavə edin ki, SVG-ni istədiyiniz rəngdə əldə edə biləsiniz
İstənilən SVG rəngini dəyişdirmək üçün izlədiyim addımlar:
- Əvvəlcə etiketlərdən istifadə edərək SVG şəklini əlavə edin img
- Hər hansı birini çevirmək üçün aşağıdakılardan istifadə edin kod HEX rəngləri filtrasiya üçün:
Məsələn, üçün çıxış #00EE00:
Filtr: invert (42%) sepiya (93%) doymuş (1352%) hue-rotate (87deg) parlaqlıq (119%) kontrast (119%);
Ən asan yol https://icomoon.io/app/#/select və ya bu kimi bir xidmətdən istifadə edərək SVG-dən şrift yaratmaqdır. SVG-ni endirin, "şrift yarat" üzərinə klikləyin, şrift və css fayllarını öz tərəfinizə daxil edin və hər hansı digər mətn kimi istifadə edin və yaradın. Mən həmişə bu şəkildə istifadə edirəm, çünki üslubu asanlaşdırır.
DÜZENLE:-də qeyd edildiyi kimi məqalə, @CodeMouse92 simvolları ilə şərh edildi, xarab edilmiş ekran görüntüləri (və SEO üçün pis ola bilər). Buna görə də SVG-yə sadiq qalın.
Yalnız yol məlumatı olan SVG. Bunu bir şəkil ilə edə bilməzsiniz... bir yol olaraq, vuruşu dəyişdirə və məlumatları doldura bilərsiniz və işiniz bitdi. illüstrator kimi
Beləliklə: ilə CSS istifadə edərək yolun doldurma dəyərinin üzərinə yaza bilərsiniz
Yol (doldurun: narıncı; )
lakin bəzi hover effekti olduqda mətnlə dəyişdirmək istədiyiniz kimi daha çevik bir yol istəyirsinizsə.. istifadə edin.
Yol (doldurun: cari rəng; )
gövdə (fon: #ddd; mətni düzləndirmə: mərkəz; padding-top: 2em; ) .parent (en: 320px; hündürlük: 50px; displey: blok; keçid: hamısı 0,3s; kursor: göstərici; doldurma: 12px; qutu -sizing: border-box; ) /*** uşaqlar üçün istədiyiniz rənglər ***/ .parent( color: #000; background: #def; ) .parent:hover( color: #fff; background: #85c1fc; ) .parent span( font-size: 18px; margin-sağ: 8px; font-weight: qalın; font-family: "Helvetica"; line-height: 26px; şaquli-align: top; ) .parent svg( max-height : 26px; width: auto; display: inline;
SVG animasiyası haqqında danışmağa başlamazdan əvvəl SVG-nin nə olduğunu anlayaq.
S
etibarlı
V
ektor
G
rafika -
miqyaslı işarələmə
vektor qrafikası. İkiölçülü vektor və qarışıq vektor/raster qrafikasını təsvir etmək üçün nəzərdə tutulmuşdur XML formatı. İstənilən aralıq koordinatlar vasitəsilə başlanğıc nöqtəsindən son nöqtəyə qədər yolu təsvir edən kompakt sətirlə istənilən rəqəmi təyin etməyə imkan verir.
SVG formatının bir sıra üstünlükləri var:
SVG- vektor formatı, və bu, keyfiyyətini itirmədən şəklin ölçüsünü artırmağa imkan verir.
Mətn daxil SVG qrafikasışəkil deyil, ona görə də onu seçmək və kopyalamaq olar, axtarış motorları tərəfindən indeksləşdirilir.
SVG- açıq standart, yəni istifadəçi SVG faylının məzmununu dəyişdirərək çertyojı dəyişə bilər.
Təsvir etmək üçün istifadə olunan üslub cədvəlləri (CSS) ilə uyğun gəlir görünüş sayt səhifələri.
Animasiya SMIL dilindən istifadə edərək SVG-də həyata keçirilir. Elementlər JavaScript vasitəsilə idarə oluna bilər.
Və bir sıra çatışmazlıqlar, onlarsız harada olacağıq:
-
Böyük xəritəçəkmə proqramlarında istifadə etmək çətindir. Kiçik detalları təsvir etmək çox zəhmətlidir.
Şəkildə nə qədər incə detallar varsa, SVG məlumatının ölçüsü bir o qədər sürətlə böyüyür.
SVG kodu nümunəsi:
Bu kodun icrası:
Bu şəkildə siz sadəcə olaraq koddakı parametrləri dəyişə bilərsiniz. Məsələn, şəkli olan bir şəkil 35,5 KB, SVG kodu isə 426 bayt tutur.
Beləliklə, biz tədricən SVG animasiyasından (SMIL) istifadə söhbətinə gəlirik. SVG qrafikası bir neçə animasiya elementindən istifadə etməklə canlandırıla bilər. Məsələn, cədvəllərdən istifadə etməklə CSS üslubları.
Bəs niyə tərtibatçı SMIL-dən istifadə etməlidir? CSS istifadə edərək dəyişdirilə və ya canlandırıla bilməyən bəzi SVG xassələri var. Məsələn, elementin formasını təyin edən verilənlər toplusunu ehtiva edən d=”” atributu. Çatışmayan CSS animasiya imkanları ilə doldurula bilər JavaScript istifadə edərək. Bunun üçün bir sıra kitabxanalar var. Brauzer (məsələn, Opera Mini) SMIL animasiyasını dəstəkləmirsə, bu məqsədəuyğundur.
Animasiya hədəfi xlink:href istifadə edərək müəyyən edilir.
Əgər xlink:href atributu təyin edilməyibsə, onda əsas element hədəf elementə çevrilir:
AttributeName atributu canlandırılacaq atributun adını müəyyən etmək üçün istifadə olunur. Məsələn, Y oxunda formanın mərkəzinin mövqeyini canlandırmaq istəyirsinizsə, atributName atributunun dəyəri kimi “cy” təyin etməlisiniz.
Əvvəlki nümunədən mavi dairənin Y oxu hərəkətini canlandıran kod budur:
5 saniyə ərzində (dur="5s"), mavi dairəyə kliklədikdən sonra (begin="click") Y oxu boyunca "300" nöqtəsindən başlayaraq "100" nöqtəsinə qədər hərəkət edəcək. İcradan sonra animasiya son nöqtədə dayanacaq (fill="dondurun"). Animasiyanı qeyri-müəyyən müddətə təkrarlamaq üçün, sadəcə olaraq repeatCount="qeyri-müəyyən" atributunu əlavə edin.
Siz həmçinin animasiyanı səhifə yükləndikdən sonra işə başlamaq üçün təyin edə bilərsiniz. Və ya yükləndikdən sonra bir müddət keçdikdən sonra funksiyanı aktivləşdirin, klikdən sonra gecikmə ilə səhifə elementinin animasiyasını əlavə edin və s.
Əslində, SVG animasiyası çox böyük bir mövzudur. Kod nümunələri və onların tətbiqi ilə böyük bir məqalə yaza bilərsiniz, lakin eyni zamanda bəzi xüsusiyyətlər əlçatmaz olaraq qalır. O cümlədən mətn animasiyası. Ancaq bu, gələcək blog məqalələrində araşdıracağımız tamamilə fərqli bir hekayədir.