Я пытаюсь создать график так:создать жидкость (масштабирование) концентрические дуги с помощью CSS, холста или SVG
http://bl.ocks.org/cmdoptesc/6228457
или как этот
http://raphaeljs.com/polar-clock.html
Но я хотите, чтобы он мог масштабироваться (желательно без javascript) в соответствии с шириной браузера. Я хотел бы иметь возможность делать это только с помощью CSS, а если не с CSS, желательно без библиотеки, например, raphael или d3 (хотя я возьму то, что смогу получить). Кто-нибудь знает, как добиться этого таким образом, чтобы он уменьшался/уменьшался?
UPDATE
Я сделал JS скрипку - это именно граф Я хочу:
Но мне нужно, чтобы изменить размер. Я использую Рафаэль, и я прочитал о SVG изменение размера здесь:
http://bertanguven.com/?tag=raphael-js
и здесь:
, но я не хочу, чтобы изменить размер с JS - Я бы действительно нравится иметь возможность делать это с помощью svg-свойств, таких как viewBox and preserveAspectRatio
, но я до сих пор не видел примера, который выполняет это.
Любые идеи?
И в ответ на редактирование @mheavers. Да, вы можете использовать атрибут viewBox для динамически созданного SVG, чтобы он реагировал, не прослушивая события окна. Первый пример в [этом ответе] (http://stackoverflow.com/a/21418197/3128209) позволяет отрегулировать график, добавив атрибут viewBox с d3; вы могли бы так же легко сделать это с Рафаэлем. Мои другие комментарии о правильности масштабирования и соотношения сторон сохраняются, вам просто нужно добавить все правильные атрибуты в SVG в свой код. – AmeliaBR
Это потрясающе, спасибо. Я думаю, что единственное, что я смутил в вашем примере, - это то, как вы вывели окно просмотра. Мне кажется, что номера в виде окна кажутся мне настолько произвольными (-3 -1 16 16) – mheavers
Извините, что * * путано и они * являются * произвольными; Я снова использовал рисунок из чего-то другого, и было легче изменить viewBox, чем изменить все координаты кривой, когда края формы были отрезаны. Вот [тот же пример с более стандартным viewBox] (http://fiddle.jshell.net/9dSbL/2/). При динамическом создании viewBox просто помните, что первые два числа будут координатами верхнего левого угла, а последние два числа будут шириной и высотой для всех команд рисования и компоновки. – AmeliaBR