基于容器元素在AngularJS指令中自动调整SVG的大小

元立方

我将角度指令放置在动态大小的元素内。该指令本身包含一个SVG,该SVG是根据元素大小计算的。我正在尝试根据容器的大小自动调整SVG的大小并重新绘制。

我最初尝试过这样的事情:

my-directive.js

angular
    .module('myModule')
    .directive('myDirective', function () {
        return {
            templateUri: 'path/to/my-directive-template.html',
            ...
        };
    });

my-directive-template.html

<svg style="width: 100%; height: 100%; max-width: 100%; max-height: 100%">
    ...
</svg>

注意该styleSVG元素上属性。在Chrome中可以正确调整大小,但在Firefox中无法使用。另外,我仍然没有钩子来重新计算SVG内容。

我也尝试添加一个onresize处理程序的elementlink功能,但是,JQLite支持onresize只在主窗口。我无法使用window.onresize,因为我的窗口大小没有改变。

我试图在这里使用答案:AngularJS-绑定到指令resize,但它们也未提供所需的结果。


简而言之,这是我正在尝试做的事情:

  1. 当父元素调整大小时,在指令内调整SVG元素的大小。
  2. 发生这种情况时,可以通过调用一些处理函数来重新计算SVG内容。

我希望此时不要在项目中添加JQuery依赖项。

元立方

可以使用标签viewBoxpreserveAspectRatio属性来实现此行为<svg>

首先,将viewBox属性设置为SVG图像的标准化边框。您的整个工程图应缩放以适合此视图框。例如,

viewBox="0 0 100 100"

将建立一个坐标系,其原点为(0,0),尺寸为100个单位x 100个单位。

接下来,使用preserveAspectRatio属性设置调整大小的行为

该值的第一部分确定SVG相对于父元素的对齐方式。这包括左/右/中心水平对齐和顶部/底部/中间垂直对齐。例如,

preserveAspectRatio="xMidYMid ..."

将SVG在其容器中居中对齐。

该值的第二部分确定SVG如何填充容器。例如,

preserveAspectRatio="... meet"

将缩放SVG,使其仅适合容器内而不会裁剪。

因此,完整的示例变为:

<svg viewBox="0 0 64 64" preserveAspectRatio="xMidYMid meet">
    ...
</svg>

由于图像随容器自动缩放,因此无需重新计算内容元素的位置。它由SVG标签自动处理。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular指令可以自动调整元素的大小

来自分类Dev

在AngularJS指令中调整div的大小?

来自分类Dev

根据容器大小自动调整元素大小而不使用比例

来自分类Dev

调整svg元素的大小

来自分类Dev

在AngularJS中处理元素调整大小

来自分类Dev

调整元素大小以适合容器

来自分类Dev

液体容器Play Framework中的自动调整的字体大小

来自分类Dev

如何自动调整容器中输入字段的大小

来自分类Dev

Excel中基于列内容的自动调整列大小

来自分类Dev

如何在AnyLogic中自动调整GUI元素的大小?

来自分类Dev

如何在:: after伪元素中自动调整圆圈的大小?

来自分类Dev

如何在SVG元素中调整文本大小

来自分类Dev

通过拖放自动调整父容器的大小

来自分类Dev

iOS 自动调整大小的容器视图

来自分类Dev

元素与AngularJS指令中的this

来自分类Dev

调整图标大小以适合容器元素?

来自分类Dev

调整大小时使响应容器与元素对齐

来自分类Dev

在angularjs中创建容器指令

来自分类Dev

如何在flex容器中调整固定大小(画布)的元素的大小?

来自分类Dev

在WrapPanel中自动调整大小?

来自分类Dev

在Irfanview中自动调整大小

来自分类Dev

如何自动调整contenteditable元素的大小?

来自分类Dev

SVG图像元素调整大小图片

来自分类Dev

JAVA Swing中如何让元素根据窗口大小自动调整大小?

来自分类Dev

如何在基于视图的NSTableView或NSOutlineView中自动调整列的大小

来自分类Dev

如何在基于视图的NSTableView或NSOutlineView中自动调整列的大小

来自分类Dev

可调整大小的容器中可拖动元素的收容问题

来自分类Dev

AngularJS指令中的元素高度

来自分类Dev

在 HTML 中调整 SVG 大小而不调整画布大小

Related 相关文章

热门标签

归档