css - SVG dasharray 长度不会随着更大的屏幕尺寸而扩大
问题描述
我有一些动画 svg 插图,当用户滚动到它们时,它们会在视口的宽度上绘制。
它们在常规屏幕尺寸下工作得很好,但是,我的同事 2560x1440 显示器没有将 SVG dasharray 显示为正确的长度。描述它的最好方法就是展示它:
我有一个测量页面上路径长度的脚本:
let lineLength = this.getTotalLength()
$(this).css('stroke-dasharray', lineLength)
$(this).css('stroke-dashoffset', lineLength)
上面说明的 SVG 总是被设置为一个 dasharray ,2138.14px
而不管视口宽度如何。
上面示例的 SVG 标记:
<svg focusable="false" class="illustration illustration--full" data-il="line" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1810 124.7">
<path vector-effect="non-scaling-stroke" data-path="main" d="M1.9 82.6S212-18.5 313.9 10.4s78.6 118.6 14.8 112c-63.8-6.6-38.8-157.6 208.5-112s334.7 105.9 561.1 45.3 447.2-90.6 709.8 40.1" />
</svg>
编辑:我刚刚放弃了non-scaling-stroke
标签,这似乎已经解决了这个问题,但现在它给我留下了非缩放笔画设置正在修复的问题......
解决方案
事实证明,当我添加vector-effect="non-scaling-stroke"
到我的 SVG 以保持笔触相同的粗细时(有一些会增长以填充页面,而另一些则不会),这会影响笔划的缩放长度,因为插图会逐渐填充视口。
从填充视口的 SVG 中删除了此标记,但将其保留在未填充的矢量上,并且笔画粗细不一致是可以接受的。
推荐阅读
- python-3.x - 为什么在尝试使用 PyPDF2 进行“水印”时,此代码不能按“预期”工作?
- php - html中带有选项卡的PHP标头位置
- python - 如何使用来自预训练 MLP 的最后一个隐藏层权重作为 Keras 的新 MLP(迁移学习)的输入?
- java - 如何编辑 JSch SCP 以将一个文件从远程主机发送到另一台远程主机?
- python - 查找列表的“最佳”项并在 python 中打印第一个实例的索引位置
- django - 如何修复在 Django 中将 DEBUG 设置为 False 导致 Heroku 的“服务器错误(500)”?
- amazon-web-services - CPU Credit Balance 在 ec2 中是有限的
- ruby-on-rails - 如何使用引导轨道正确设置整个应用程序的文本方向属性 = RTL?
- python - Keras 如何更改已加载模型的可训练层
- python - 如何从生成器对象获取信息