この便利なPHPスクリプトは、SVGパスをコンテナに対して相対的に作成するため、フロントエンドで実装したときに反応します。SVGパス0 - 1 JavaScriptでの範囲変換
$absolute_path = "M0,67.9586133 M0,67.9586133.....Z";
function regex_callback($matches) {
static $count = -1;
$count++;
$width = 1072.01;
$height = 399.23;
if($count % 2) {
return $matches[0]/$height;
} else {
return $matches[0]/$width;
}
}
$relative_path = preg_replace_callback('(\d+(\.\d+)?)', 'regex_callback', $absolute_path);
出典:Convert SVG path data to 0-1 range
現在、私はJavaScriptとノードで働いているので、私はJavaScriptを使用してこの機能を再作成しようとしています。ここまでは私が今までに得たものですが、返されるデータは入力されたものとまったく同じですので、私は立ち往生しています。
function replacer(match, svgWidth, svgHeight) {
let count = -1;
count++;
if (count % 2) {
return match[0]/svgHeight;
} else {
return match[0]/svgWidth;
}
}
let svgPath = "M0,67.9586133 M0,67.9586133.....Z"
let nuPath = svgPath.replace('(\d+(\.\d+)?)', replacer);
console.log(nuPath);
任意の助け - 方向及び/又は補正が理解されます。
ありがとうございます!
「応答性を保つための要素は? – lilezek
私はSVGをクリップパスとして 'clipPathUnits =" objectBoundingBox "と使用しています。これを応答可能なユニットにするには、私の理解に基づいて0 - 1でなければなりません。 – mmarquez
どのような種類のSVGがその座標に有効数字を必要としますか? XDとにかく 'viewBox'属性を設定することもできます。 –