Мне нужен способ изменить ширину и высоту изображения внутри SVG, основываясь на ориентации устройства, используя Javascript (или ECMAScript внутри SVG).
Я использую этот код, но он не влияет на элемент изображения внутри SVG.
// SVG code, inside XHTML file
<svg xmlns="http://www.w3.org/2000/svg" class="birds" height="569px" id="bird01" version="1.1" width="368px" x="0px" xml:space="preserve" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
<g>
<defs>
<rect class="crop" height="569" id="SVGID_1_" width="368"></rect>
</defs>
<use overflow="visible" xlink:href="#SVGID_1_"></use>
<g clip-path="url(#SVGID_2_)">
<image clip-path="url(#SVGID_2_)" height="846" id="bird-img" overflow="visible" width="547" xlink:href="../Images/bird.jpeg"></image>
</g>
</g>
</svg>
// JS code, outside file, referenced in head
window.onload = function initialLoad() {
detectOrientation();
}
detectOrientation();
window.onorientationchange = detectOrientation;
function detectOrientation(){
if(typeof window.onorientationchange != 'undefined'){
if ( orientation == 0 ) {
document.getElementById("bird-img").setAttribute("width", "547").setAttribute("height", "846");
}
else if ( orientation == 90 ) {
document.getElementById("bird-img").setAttribute("width", "368").setAttribute("height", "568");
}
else if ( orientation == -90 ) {
document.getElementById("bird-img").setAttribute("width", "368").setAttribute("height", "568");
}
else if ( orientation == 180 ) {
document.getElementById("bird-img").setAttribute("width", "547").setAttribute("height", "846");
}
}
}
По этой ссылке отображается тестовая страница: http://bit.ly/mSBDhq Настройка размера окначтобы увидеть окно SVG, меняющее его размер.Я просто хочу, чтобы размер изображения был отрегулирован по ширине поля SVG в обоих случаях (альбомная и книжная).Я использую медиазапросы CSS, чтобы выполнять большую часть работы, но CSS-элемент не влияет на элемент изображения SVG, поэтому я ищу решение JS.Я ценю любые источники света.
Примечание: к сожалению, в этом случае я просто не могу использовать обычный тег изображения и переполнение свойств CSS в сочетании с медиа-запросами для достижения этого эффекта (длинная история).