jQuery SVG ve Raphael [kapalı]


254

SVG ve JavaScript / jQuery kullanarak etkileşimli bir arayüz üzerinde çalışıyorum ve Raphael ile jQuery SVG arasında karar vermeye çalışıyorum . bilmek isterdim

  1. İkisi arasındaki ödünleşimler nelerdir
  2. Gelişim momentumunun nerede göründüğü.

Raphael'de VML / IE desteğine veya jQuery SVG'nin çizim yeteneklerine ihtiyacım yok. Öncelikle bir SVG tuvalinde tek tek öğeleri oluşturmanın, canlandırmanın ve manipüle etmenin en zarif yoluyla ilgileniyorum.

Yanıtlar:


194

Son zamanlarda hem Raphael hem de jQuery SVG'yi kullandım - ve düşüncelerim:

Raphael

Artıları: iyi bir başlangıç ​​kütüphanesi, SVG ile çok şey yapmak kolay. İyi yazılmış ve belgelenmiş. Birçok örnek ve Demolar. Genişletilebilir mimari. Animasyon ile harika.

Eksileri: gerçek SVG işaretlemesinin üzerinde bir katmandır, SVG ile gruplama gibi daha karmaşık şeyler yapmayı zorlaştırır (Grupları destekler, ancak grupları desteklemez). Zaten var olan öğelerin w / düzenleme yapmaz.

jQuery SVG

Artıları: jQuery kullanıyorsanız, bir jquery eklentisi. İyi yazılmış ve belgelenmiş. Çok sayıda örnek ve demo. Çoğu SVG elemanını destekler, elemanlara kolayca yerel erişim sağlar

Eksileri: mimarisi Raphael kadar genişletilemez. Bazı şeyler daha iyi belgelenebilir (SVG öğesinin yapılandırılması gibi). Zaten var olan öğelerin w / düzenleme yapmaz. Animasyon için SVG semantiğine dayanır - ki bu harika değildir.

Raphael'in saf SVG versiyonu olarak SnapSVG

SnapSVG, Raphael'in halefi. Yalnızca SVG özellikli tarayıcılarda desteklenir ve SVG'nin neredeyse tüm özelliklerini destekler.

Sonuç

Hızlı ve kolay bir şey yapıyorsanız, Raphael kolay bir seçimdir. Daha karmaşık bir şey yapacaksanız, jQuery SVG'yi seçtim çünkü gerçek işaretlemeyi Raphael'den daha kolay manipüle edebilirim. Ve jQuery olmayan bir çözüm istiyorsanız SnapSVG iyi bir seçenektir.


15
RaphaelJS'in belgeleri o kadar da iyi değil, sınırlı ve bazen tüm bilgileri almak için SVG veya jQuery belgelerine gitmeniz gerekiyor. Bununla birlikte, demo'nun (kaynak kodu) yanı sıra forum ve birçok kullanıcı ile ihtiyacım olan cevapları almayı başardım.
Roalt

11
Raphael'i kullanmaya yeni başladım ve belgeleri daha resmi spesifikasyonların yanında çok açık örneklerle bir javascript API'sı için karşılaştığım en iyi şeylerden biri olarak buldum
iyilerden biri olarak buldum

71
RaphaelJS'nin Internet Explorer için VML ile geriye dönük uyumluluğu olduğunu unutmayın. Bu çok büyük çünkü SVG eski tarayıcılarda çalışmıyor.
strongriley

3
Soru özellikle geriye dönük uyumluluk değil SVG ile ilgiliydi. Arzu çapraz tarayıcı vektör grafikleri ise, haklısın.
Anatoly G

4
Bir başka jQuery SVG con, projenin proje açıcı (GPL ve MIT) olmasına rağmen geliştiricisi tarafından terk edildiği görülüyor (sürüm 1.4.5 son güncelleme 28 Nisan 2012). jquery.svg.dom, jQuery 1.8 ile bazı çakışmalara neden olur. İdeal olarak birisinin projeyi devralmasını ve umarım onu ​​github'a koymasını beklerim
Hoffmann

53

Gelecek nesiller için, temiz API ve "ücretsiz" IE desteği nedeniyle Raphael'i seçtiğimi ve ayrıca aktif geliştirme umut verici göründüğü (örneğin olay desteği sadece 0.7'de eklendi). Ancak, soruyu yanıtsız bırakacağım ve yine de Javascript + SVG kütüphanelerini kullanan başkalarının deneyimlerini duymak isterim.


1
Raphael için güzel IE desteği harika. IE'de köşeleri yuvarlatılmış kareler? ... sorun değil)
Peter Ajtai

26

Raphael'in büyük bir hayranıyım ve geliştirme ivmesi güçlü görünüyor (geçen hafta geç saat 0.85 yayınlandı). Bir başka büyük artı, geliştiricisi Dmitry Baranovskiy'nin şu anda oldukça kaygan olması için şekillendirilmesine benzeyen bir Raphael grafik eklentisi, g.raphael üzerinde çalışıyor olması ( Flickr'ın ilk sürümlerinden çıktıların birkaç örneği var ) .

Bununla birlikte, SVG kütüphane karışımına başka bir olası yarışmacı atmak için Google'ın SVG Web'i gerçekten çok umut verici görünüyor (SVG uyumlu olmayan tarayıcılarda oluşturmak için kullandığı Flash'ın büyük bir hayranı olmasam bile). Muhtemelen izlenmesi gereken, özellikle de yaklaşan SVG Open konferansı ile .


1
Şu anda Raphael v. 1.5.2.
topright gamedev

3
mevcut sürümün 2.1.2 olduğunu fark etmek büyük bir sorun değildir. Bu yorum birkaç yıl içinde başka bir adam tarafından düzeltilmeyi bekliyor ...
Tebe

Kopat 'Sho Ya Nashel, Birkaç yıl sonra ... Şimdi Raphael v2.2.1
Nathangrad

12

Raphael'in kurulması ve başlaması kesinlikle daha kolaydır, ancak SVG'de Raphael'de mümkün olmayan şeyleri ifade etmenin yolları olduğunu unutmayın. Yukarıda belirtildiği gibi "grup" yoktur. Bu, Koordinat Aktarımları katmanlarını uygulayamayacağınız anlamına gelir. Bunun yerine yalnızca bir koordinat dönüşümü vardır.

Tasarımınız iç içe geçmiş koordinat dönüşümlerine bağlıysa, Raphael sizin için değildir.


11

Ah Raphael Haziran ayından bu yana önemli ölçüde ilerledi. Onunla çalışabilecek yeni bir grafik kütüphanesi var ve bunlar çok dikkat çekici. Raphael ayrıca tam SVG yolu sözdizimini destekler ve gerçekten gelişmiş yol yöntemlerini kullanmaktadır. Gel benim sitemde 1.2.8+ (Utanmaz fiş) bakın ve oradan Dmitry siteye sıçrama. http://www.irunmywebsite.com/raphael/raphaelsource.html


6

Bence tamamen alakasız değil ama tuvali düşündün mü? Process JS gibi bir şey daha basit hale getirebilir.


12
Hem genel olarak brandaya hem de özellikle İşleme'ye baktım. Sorun, (bildiğim kadarıyla) fare olaylarının, DOM'a tamamen maruz kalan SVG'nin aksine, sürükle ve bırak gibi özellikler için tuval üzerindeki tek tek öğelere kolayca eklenememesidir.
Luke Dennis

1
Tuval ile kapsamlı bir çalışma yapmadım, ancak grafikler için tuval kullanan Flot - jquery eklentisine bir göz attım. Mouseclicks oldukça iyi idare ediyor.
Bharani

4
Mouseclicks evet, ancak tuvaldeki öğelerdeki dom olaylarını değil. Aslında, Canvas için olay işleyiciyi tuval üzerine koyamazsınız (IE nedeniyle), ancak tuvali tutan bir div'e koyabilirsiniz.
Nosredna

3
tuval bitmap'ler için harika, SVG vektör grafikleri için harika. SVG'nin ölçeklendirme kabiliyeti bunun için harika. Tuval ve SVG'nin tamamlayıcı teknolojiler olduğunu düşünüyorum.
Anatoly G

Tuval için fare olayları ile ilgili olarak, tüm bunları sizin için halleden Easel.js'ye bir göz atın.
Neil

6

Ayrıca svgweb'e de göz atmalısınız. IE'de ve isteğe bağlı olarak diğer tarayıcılarda (tarayıcının kendisinden daha fazlasını desteklediği durumlarda) svg'yi oluşturmak için flash kullanır.

http://code.google.com/p/svgweb/


5

Oyumu Raphael'in arkasına atacağım - çapraz tarayıcı desteği, temiz API ve tutarlı güncellemeler (şimdiye kadar) kullanımı bir zevk haline getiriyor. Çok jQuery ile çok güzel oynuyor. İşleme harika, ancak şu anda kanayan şeyler için bir demo olarak daha kullanışlı.



5

IE6 / IE7'yi umursamayanlar için, Raphael'i yazan aynı adam özellikle modern tarayıcılar için bir svg motoru inşa etti: Snap.svg .. iyi dokümanlar ile gerçekten güzel bir site var: http://snapsvg.io

snap.svg, kutudan çıkar çıkmaz kolayca kullanılamaz ve mevcut SVG'leri değiştirebilir / güncelleyebilir veya yenilerini oluşturabilir. Bu bilgiyi snap.io hakkında sayfada okuyabilirsiniz, ancak hızlı bir çalışma:

Eksileri

  • Snap özelliklerinden yararlanmak için eski tarayıcıları desteklemekten vazgeçmelisiniz. Raphael, IE6 / IE7 gibi tarayıcıları destekler, ek özellikler yalnızca IE9 ve üstü, Safari, Chrome, Firefox ve Opera tarafından desteklenir.

Artıları

  • Maskeleme, kırpma, desenler, tam degradeler, gruplar ve daha fazlası gibi SVG'nin tüm özelliklerini uygular.

  • Mevcut SVG'lerle çalışabilme: Snap ile çalışması için içeriğin Snap ile oluşturulması gerekmez, böylece herhangi bir ortak tasarım aracıyla içerik oluşturmanıza olanak tanır.

  • Basit, uygulaması kolay bir JavaScript API'sı kullanarak tam animasyon desteği

  • Kaynak kapsayıcısına veya hareketli grafik sayfasına benzer şekilde, önce bunları oluşturmak zorunda kalmadan SVG dizeleriyle (örneğin, Ajax aracılığıyla yüklenen SVG dosyaları) çalışır.

ilgilenip ilgilenmediğinizi kontrol edin: http://snapsvg.io


3

Henüz burada bahsedilmediğinden: Ayrıca iyi SVG çizim yetenekleri de sağlayan Dojox.drawing'e de göz atmalısınız . Oldukça etkileyici özelliklere sahiptir. Sadece onunla bir proje başlatıyorum, ama bana öyle geliyor ki (en azından özellikler açısından) Raphael ve JQuerySVG'den çok daha üstün.

Bu sunum beni Raphael / JQuerySVG yerine kullanmaya ikna etti: http://www.slideshare.net/elazutkin/dojo-gfx-svg-in-the-real-world-2114082

Referans: http://dojotoolkit.org/reference-guide/dojox/index.html

Dojocampus ile ilgili referans: http://docs.dojocampus.org/dojox/drawing

Dojo'yu indirin (Dojox dahil): http://dojotoolkit.org/download/




0

VML ve IE8 desteğine ihtiyacınız yoksa Canvas'ı kullanın (örneğin PaperJS). Windows 7 için en son IE10 demolarına bakın. Tuvalde inanılmaz animasyonlar var. SVG onlara yakın bir şey yapamaz. Genel Tuval, tüm mobil tarayıcılarda kullanılabilir. SVG, Android 2.0-2.3'ün ilk sürümlerinde çalışmıyor (bildiğim gibi)

Evet, Tuval ölçeklenebilir değildir, ancak o kadar hızlıdır ki, tuvalin tamamını daha hızlı bir şekilde yeniden görüntüleyebilmeniz için görüntüleme portunu kaydırmaya olanak tanır.

Benim bakış açımdan Microsoft'un optimizasyonları, Canvas'ı normal GDI motoru olarak kullanmak ve şimdi Windows için yaptığımız gibi grafik uygulamaları uygulamak için araçlar sunuyor.


1
Saf grafik oluşturma için kesinlikle katılıyorum. Tuvalin içermediği SVG / VML'nin sunduğu tek şey bir DOM ve bir olay hiyerarşisidir, çünkü çizilen öğeler ham bitmap yerine tam DOM nesneleridir. Tuval ile X / Y tıklama koordinatları yapılabileceklerden en iyisidir. Her halükarda, proje çoktan beri uzun, bu yüzden şu anda ilgili değil, cevabınız için teşekkürler. :)
Luke Dennis
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.