防止在浏览器窗口调整大小时缩放SVG元素
Prevent a SVG element to be scaled when the browser window is resized
我有一个SVG图像,它基本上是一个背景与其他点(images
)在它上面。
<div class="svg-background" style="width: 1920px;>
<svg xml:space="preserve" enable-background="new 0 0 1600 640" viewBox="0 0 1600 640" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" version="1.1" id="svg" width="100%" height="100%">
<!-- ...SVG code... -->
<image id="point" href="point.png" width="49" height="49" alt="point" class="svg-point" x="100" y="200"/>
<!-- and more points... -->
</svg>
</div>
我用jQuery改变#svg-background
div以适应浏览器的宽度,所以我有一个适合整个浏览器宽度的SVG背景,它的缩放非常好。
我的问题是点(image
元素)也缩放和我需要这些点有一个固定的宽度和高度。
如何防止SVG元素缩放时,浏览器窗口的大小调整?
如果一个元素在SVG中,那么当SVG缩放时它会被缩放。这是无法阻止的。
你有两个可能的解决方案:
-
这些不可调整大小的元素应该是SVG的一部分吗?它们是否应该放在一个单独的SVG中,并且绝对位于另一个SVG的顶部?
-
如果你想要一些元素被缩放,而其他的不是,那么一个工作将是有一个OnResize事件处理程序,它计算出元素大小需要在SVG坐标空间中,并应用
transform
属性来适应。如果窗口变大,你应用一个变换把对象按适当的比例缩小来补偿。不用说,这是一个有点黑客的解决方案。
相关文章:
- 更改高贴图的缩放级别
- 在不阻止默认行为的情况下检测IE10中的缩放
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 缩放Raphael/SVG容器以适应所有内容
- 传单缩放控制位置错误
- 在不移动内部文本的情况下缩放元素的效果
- 调整缩放窗口高度提升缩放
- 计算CSS3缩放框在另一个框中的最高位置
- D3.JS向rect添加缩放和列表项
- 当我在节点上拖动鼠标时,我如何防止使用d3.ehavior.zoom().on(“缩放”,重绘)
- 将直流图表库中的折线图缩放限制为小时
- 为什么缩放按钮不会显示在照片擦除中
- 动态设置谷歌地图缩放
- 当
- 缩放图像,而不是在调整浏览器窗口大小时环绕图像
- jQuery在缩放或调整窗口大小时重新调整背景图像
- 当您将窗口调整为任何大小时,如何按比例获得此缩放框的图像和文本
- 防止在浏览器窗口调整大小时缩放SVG元素
- 元素在调整大小时错位(使用最大宽度:100%根据窗口大小缩放)
- CreateJS:舞台或画布中的元素在窗口调整大小时没有正确缩放