Birden Fazla Svg Javascript'e Nasıl Sahip Olunur?
Yayınlanan: 2023-01-28Web geliştiricilerinin web sayfalarına birden fazla Ölçeklenebilir Vektör Grafiği (SVG) eklemek istemesi alışılmadık bir durum değildir. Bunu gerçekleştirmenin birkaç farklı yolu olsa da, yöntemlerden biri SVG kodunu doğrudan HTML'ye gömmek için JavaScript kullanmaktır. Bu, kullanılarak yapılabilir.
Bu serinin ilk bölümünde, temel ve gelişmiş şekillerin nasıl çizileceğini inceledik. İkinci bölümde, gelişmiş yeteneklerin yanı sıra SVG'nin CSS ve JavaScript gibi diğer tarayıcı teknolojileriyle nasıl etkileşime girdiğini ele alacağız. Bu gönderi, JavaScript bileşenlerinin nasıl oluşturulacağını öğrenmeye odaklanmaktadır. Bu bölümde kontura baktık ve SVG öğelerinin özniteliklerini doldurduk. Degradeler iki türe ayrılır: doğrusal ve radyal. Farklı durakların opaklığını kontrol ederek degradenin açısını değiştirebilirsiniz. Desenlere ek olarak, şekli ilginç bir şekilde doldurmak için bunları kullanmak mümkündür.
Bir üçgeni gülen yüzlerle doldurmak istiyorsak, elimizde 30 tane olduğunu hayal edin. ransform özniteliği, SVG'yi kullanarak şekilleri çeşitli şekillerde değiştirmenize olanak tanır. Bir matristeki diğer tüm dönüşümleri ve ayrıca bir matris kullanarak diğer dönüşümlerin bileşimini ifade etmek için, matris dönüşümü en genel olanıdır. Kırpma ve maskeleme, kırpma ile aynı işlevi yerine getirmeleri açısından benzerdir, ancak maskeleme, arka plan tarafından kısmen gizlenmiş görünebilir. CSS stili, SVG öğelerine HTML öğeleriyle aynı şekilde stil vermenizi sağlar. Bir CSS sayfası oluşturmak, yalnızca CSS'nin görünüşünü ve verdiği hissi SVG dosyasınınkinden ayırmakla kalmaz, aynı zamanda CSS sayfasını HTML sayfasından da ayırır. Olay dinleyicileri kullanılırken, bunlar doğrudan SVG öğelerine eklenebilir.
Aşağıdaki örnekte fare dairenin üzerine getirildiğinde, dolgu rengi Gümüş'ten Sarı'ya değişir. SVG formatı olgun ve sofistike bir grafik formatıdır. Her ikisi de raster format olan JPEG ve PNG'ye göre kullanımı daha kolay bir vektör formatıdır. En çok işi mümkün olan en etkili şekilde yapmak için uygun çizim araçlarını kullanmak en iyisidir. Neyse ki, SVG çıktı formatlarını destekleyen çok sayıda araç var. Kullanıcı oturumlarını video olarak yeniden oynatmanıza olanak tanıyan SessionStack ile bir kullanıcının neler yaşadığını gerçek zamanlı olarak görebilirsiniz. Bu uygulamanın görsel olarak çarpıcı özellikleri, grafiklerinizle etkileşime girdiklerinde ne olduğunu, bunları nasıl deneyimlediklerini gösterir ve sorunları hızla tespit eder. SessionStack'i denemek isterseniz, bunu sınırlı bir süre için ücretsiz olarak yapabilirsiniz.
İki Svg Javascript'i Birleştirme
İki svg javascript'i birleştirmenin birkaç yolu vardır, ancak en kolay yol D3.js gibi bir kitaplık kullanmaktır. D3 ile birleştirmek istediğiniz iki öğeyi seçebilir ve .merge() işlevini kullanabilirsiniz.
Bir Dosyada Birden Fazla Svg
Bir dosyada birden fazla SVG olması mümkündür, ancak bu önerilmez. En iyi organizasyon ve performans için her SVG kendi dosyası olmalıdır.
CodePen'de, HTML düzenleyicide görünen kodun tamamı, temel bir HTML5 şablonunda görünen koddur. Belgenin tamamı üzerinde doğrudan etkisi olan sınıfları dahil etmek istiyorsanız, gidilecek yer burasıdır. Özellik ve değer satıcıları, yürütülmesi gereken özelliklere ve değerlere sıklıkla uygulanan satıcı önekleridir. Kaleminize İnternet üzerindeki herhangi bir yerden herhangi bir yerden bağlanabilir ve oradan bir komut dosyası kullanabilirsiniz. Ardından, buradaki URL alanına bir URL yerleştirin ve Kalem'de JavaScript'ten önce eklenecektir. Bağladığınız betiğin dosya uzantısı değiştiyse, başvurmadan önce işlemeye çalışırız.
Satır İçi Svg JavaScript
Satır içi SVG , vektör grafiklerinin doğrudan bir HTML belgesi içinde görüntülenmesini sağlayan bir XML biçimlendirme dilidir. Bu, geliştiricilerin ayrı bir eklentiye veya uygulamaya ihtiyaç duymadan etkileşimli vektör grafikleriyle web sayfaları oluşturmasına olanak tanır. Satır içi SVG ayrıca geliştiricilerin vektör grafiklerini CSS ile biçimlendirmelerine ve bunları JavaScript ile canlandırmalarına olanak tanır.
Javascript işlevleri, satır içi SVG'ler kullanılarak yürütülebilir. Önerdiğim yaklaşımın işe yaramayacağını anlayınca aşağıdaki adımları takip ettim. Javascript bloğunu işlevinizle doldurun, onclick olayını tanımlayın ve bir Javascript bloğu ekleyin. Eylemi önceden beklemede yapmak için işleve $action koyun. Bir önceki yazımda yaptığım önerilerin ardından adımların altında bir PoC oluşturdum ve hemen test ettim. Öğe tıklandığında, yalnızca bir mesaj içeren Handler_OnSVGClick istemci eylemini kullanacağım. Jo*o'nun anlayışlı bir çözümü var ve onun benden daha zeki bir adam olduğuna katılıyorum.
Satır İçi Svg, Harici Svg'den Daha İyidir
Satır içi bir svg dosyası oluşturmak istiyorsanız, harici svg dosyalarını kullanın. Bazı durumlarda harici bir katıştırılmış dosyanın tercih edilebilmesine rağmen, çoğu durumda satır içi SVG en iyi seçimdir. Komut dosyası oluşturmak, yönetmek, biçimlendirmek ve sürdürmek daha kolaydır.
Javascript ile Svg Enjekte
SVG'yi JavaScript ile enjekte etmek çeşitli şekillerde yapılabilir. Bir yaklaşım, bir SVG dosyasını bir HTML öğesi için arka plan görüntüsü olarak kullanmaktır. Bu, 'background-image' CSS özelliğini 'url(“path/to/file.svg”)' olarak ayarlayarak yapılabilir. Diğer bir yaklaşım ise ' ' etiketini ekleyin ve 'src' özniteliğini 'path/to/file.svg' olarak ayarlayın.
HTML'de olduğu gibi, bir bitki örtüsü Belge Nesne Modeli (DOM) kullanılarak temsil edilir. Bu, Javascript ile manipüle edilmelerinin nispeten kolay olduğu anlamına gelir. Bu bölümde, hem satır içi hem de harici SVG'lerin nasıl kullanılacağını ele alacağım. Kod örnekleri, Github bağlantısına tıklayarak ulaşabileceğiniz bu sayfanın üst kısmında bulunabilir. Harici bir SVG kullanırken, bir <script> öğesi yüklerken aynı kodu eklemelisiniz. SVG, sayfada başka herhangi bir SVG göremediği için, sayfaya katıştırılmış bir HTML belgesi kullanılarak oluşturulabilir. Kod, CDATA'ya sarıldığında, JS kodu, çözümlemenin neresinde olursa olsun, XML'in bir parçası olarak kabul edilir.
HTML'de öğe oluşturmak ve kaldırmak aynı şeydir. İlgili belgenin createElementNS yöntemi, etiket adının yanı sıra oluşturulacak öğeleri içeren ad alanını da iletmelidir. CreateTextNode kullanılarak öğeye eklenmesi gereken bir öğeyi kaldırmak için ayrı bir metin düğümü oluşturmak gerekir. Bu, aynı belgede olmadıkları için çalışır.
Css'de Svg Resimleri
SVG Görüntüleri , CSS'de çeşitli kullanımlar için mevcuttur. SVG dosyasını bir satır içi görüntüye dahil etmenin en basit yolu, veri URI biçimini kullanmaktır. Örneğin, br deyin. Arka plan resmi olarak url (mySVG.svg) olarak telaffuz edilir. Bu yöntemi, bileşenin kodlanmış değerini elde etmek için encodeURIComponent()'i çağırmak zorunda kalmadan herhangi bir modern tarayıcıda kullanabilirsiniz. SVG'yi CSS'nizde kodlamadan kullanmak için satır içi stil özelliğini [br] kullanın. Biraz riskli. Satır içi-svg varsayılandır. EncodeURIComponent() çağrısı kullanılmadan tüm modern tarayıcılarda yürütülecektir. SVG'yi eski tarayıcılarda da çalıştırırken CSS'nizde kullanmak istiyorsanız, lütfen svg() kısayol özelliğini kullanın: https://br.shtml Gördüğünüz gibi, * büyük harfle yazılmıştır. Arka plan için svg() kullanacağım. Satır içi stilleri desteklemeyenlerin yanı sıra tüm modern tarayıcılar bununla çalışacaktır.
Html'de Svg Nasıl Kullanılır
svg> */svg> etiketi, görüntüleri doğrudan bir HTML belgesine eklemenizi sağlar. Aşağıdaki adım, SVG görüntüsünü VS kodunuzda veya tercih ettiğiniz IDE'de açmak, kodu kopyalamak ve HTML belgenizin body> öğesine yapıştırmaktır. Her şey yerindeyse, tam olarak aşağıdaki demoya benzeyen bir web sayfanız olmalıdır.
Yeni bir koordinat sistemi ve görüntü alanı tanımlamak, SVG öğelerinden biridir. Ölçeklenebilir Vektör Grafikleri (SVG), vektör verilerini kullanan bir görüntü biçimi türüdür. Bir SVG kullandığınızda, diğer görüntü türleri gibi görüntünüzde belirgin pikseller olmaz. vektör verileri, herhangi bir çözünürlüğe ölçeklenebilen görüntüler oluşturmak için kullanılır. HTML'de dikdörtgen bir şekil oluşturmak için >rect> öğesini kullanın. Yıldız, PNG etiketinin yardımıyla oluşturulabilir. Doğrusal bir gradyan kullanılarak SVG'de bir logo yapılabilir.
Daha küçük dosya boyutları nedeniyle, SVG'leri kullanarak web sitenize resim yüklemek daha kolaydır. Çözünürlük, SVG grafiklerinin yaratıcısı için önemli değildir. Sonuç olarak, bu programlar çeşitli cihazlar ve tarayıcılarla uyumludur. PNG ve JPG gibi raster formatlar büyütüldüklerinde sayısallaştırılırlar. Satır içi SVG, HTTP isteklerine bağlı olmayan bir resim dosyası yüklemek için basit bir yöntemdir. Web siteniz duyarlıysa, kullanıcılarınız bunu fark edecektir.
Svg ve Css
SVG (Scalable Vector Graphics), etkileşim ve animasyon desteği ile iki boyutlu grafikler için XML tabanlı bir vektör görüntü formatıdır. CSS (Basamaklı Stil Sayfaları), bir biçimlendirme dilinde yazılmış bir belgenin sunumunu açıklamak için kullanılan bir stil sayfası dilidir. CSS stil sayfası, bir web tarayıcısına HTML veya XML ile yazılmış bir belgeyi nasıl görüntüleyeceğini söyleyen bir kurallar topluluğudur.
Sunum nitelikleri, SVG öğelerine stil vermek için kullanılır ve öğeler, CSS özellikleri de olabilir. Örneğin Dolgu, bir öğenin rengini CSS'de beyazdan kırmızıya değiştirmek için kullanılabilir. Metin, maskeleme, filtreleme ve filtre efektleri, CSS ve SVG özelliklerine örnektir. Her bir SVG öğesinin CSS özellikleri, diğer öğelerinkinden biraz farklı olacaktır. Yazılımın en son sürümünde rx ve ry gibi geometri özellikleri tanımlanmıştır. Geometri özellikleri, dolgu ve kontur gibi sunum nitelikleriyle aynı şekilde CSS özellikleri olarak da kullanılabilir. Öğe, geçersiz kılma olarak CSS kullanılarak bir şekle dönüştürülebilir.
>rect> öğesi için yüksekliği ve genişliği CSS kullanarak da belirleyebilirsiniz. Belirli bir elemanın şekli, d özelliği kullanılarak belirtilebilir. a:active sözde sınıfı eklendiğinde, şekil bir kareye dönüşür ve tıklandığında dolgu rengi değişir. CSS'deki her şekil sınıfına bir animasyon gecikmesi eklemek için bir animasyon gecikmesi kullanın. Bu teknikleri üretimde hemen kullanmak gerekli değildir.
Svg Birleştirme
SVG Merge , birden çok SVG dosyasını alan ve tek bir SVG dosyası çıkaran bir komut satırı aracıdır. Çıktı dosyası, girdi dosyalarındaki tüm şekilleri birleştirilmiş olarak içerir.
Birden çok SVG dosyasını tek bir dosyada birleştirme yeteneği, SVG Merger kullanılarak sağlanır. Araç, SVG görüntülerini birleştirdikten sonra ortaya çıkan sva dosyasını dışa aktarmak için kullanılabilir. Bu program, işletim sisteminden bağımsız olarak herhangi bir web tarayıcısında çalışır. SVG dosya boyutunun 10 MB'ı aşması önerilmez.
Svg Grafikleri
SVG, etkileşim ve animasyon desteği ile iki boyutlu grafikler için bir vektör grafik formatıdır. SVG özelliği, World Wide Web Consortium (W3C) tarafından 1999'dan beri geliştirilen açık bir standarttır. SVG görüntüleri ve davranışları, XML metin dosyalarında tanımlanır. Bu, aranabilecekleri, indekslenebilecekleri, kodlanabilecekleri ve sıkıştırılabilecekleri anlamına gelir. XML dosyaları olarak, SVG görüntüleri herhangi bir metin düzenleyiciyle oluşturulabilir ve düzenlenebilir, ancak daha çok çizim yazılımıyla oluşturulur.
Ölçeklenebilir Vektör Grafikleri (SVG), bir tür iki boyutlu grafik kitaplığıdır. Uygulama iki bölüme ayrılmıştır: XML tabanlı bir dosya formatı ve bir grafik programlama arayüzü. Temel özellikler kullanılarak şekiller, metin ve katıştırılmış raster grafikler dahil olmak üzere çeşitli boyama stilleri uygulanabilir. ECMAScript gibi komut dosyası dili ve eksiksiz animasyon desteği Önde gelen baskı donanımı üreticileri, özellikle basılı kopya yazdırma için tasarlanmış bir SVG sürümü geliştiriyor. Postscript ve PDF'nin aksine, XML tabanlı sayfa açıklamalarını içeren çok sayıda kullanım durumu vardır. Birçok tasarım aracı, SVG'nin içe ve dışa aktarılmasını desteklediğinden, platformlar arası değişim formatı olarak kullanılabilir. SVG dili , XML'deki iki boyutlu grafikleri tanımlar.
Grafik nesneleri üç türe ayrılabilir: vektör grafikleri, resimler ve metin. Nesneler grafiksel bir bağlamda gruplandırılabilir, stillendirilebilir, dönüştürülebilir ve birleştirilebilir. Cihazlar, bir SVG ön ucu ile endüstriyel kontrol sistemleri gibi şeyleri kontrol edebilir ve izleyebilir.