Jestem nowy w SVG
, więc przepraszam, jeśli jest to trochę pytanie noob. Próbuję dowiedzieć się, jak uzyskać obraz do wyświetlenia z pełną szerokością i wysokością przywoływanego obrazu. Używam D3.js
do tworzenia wykresów i chcę, aby logo pojawiło się w rogu. Problem polega na tym, że obraz href
zostanie ustawiony za pomocą javascript, więc odwoływany obraz nigdy nie jest stałą szerokością ani wysokością. Potrzebuję obrazu, który będzie wyświetlany na całej jego szerokości i wysokości, bez przeskalowania w górę lub w dół. Miałem nadzieję na automatyczne ustawienie szerokości i wysokości obrazu w oparciu o jego zawartość, na przykład ustawienie atrybutów width
i height
na auto
. To jednak powoduje, że obraz nie jest wyświetlany.Auto szerokość i wysokość dla obrazu SVG
d3.select("body")
.append("svg")
.attr('id','mySVG')
.attr({
"width": "100%",
"height": "100%"
})
.attr("viewBox", "0 0 " + width + " " + height)
.attr("preserveAspectRatio", "none");
d3.select('#mySVG')
.append('image')
.attr('image-rendering','optimizeQuality')
.attr('height','auto') <--- This does not work
.attr('width','auto') <--- This does not work
.attr('xlink:href', logoUrl)
.attr('x','0')
.attr('y','0');
Jak bym go o określenie, że obraz SVG width
i height
musi być dynamicznie określana na podstawie wskazanej wielkości obrazu?
Czy istnieje powód, dla którego nie używasz tylko znacznika img? – Wex
Cześć Wex. Masz na myśli znacznik 'html'' img'? Wolałbym zachować rozwiązanie w 'SVG' jeśli to możliwe. Chciałbym, aby obraz osadzony w 'SVG' dla tworzonego wykresu. – BruceHill
możliwy duplikat [Nie obsługuje SVG automatycznej szerokości i wysokości obrazów?] (Http://stackoverflow.com/questions/16080273/doesnt-svg-support-auto-width-and-height-for-images) –