svg缩放-如何使用SVG进行缩放和平移

作者&投稿:淫夏 (若有异议请与网页底部的电邮联系)
~ 【缩放】实现svg以鼠标为焦点缩放

以鼠标为焦点缩放=以原点为焦点缩放+位移。利用svg的属性viewbox:x,y控制位移,width,height控制缩放。

在当前视窗内,改变viewBox的width与height即可实现以左上角为原点的缩放,故只需计算以左上角为焦点缩放后和以鼠标位置为焦点缩放后两个原点的偏移量即可。后文不再赘述scale与viewbox的关系。

以鼠标位置为基准计算新原点位置

如何使用SVG进行缩放和平移

对SVG图进行缩放和平移的最简单方法是使用浏览器自带的缩放和滚动功能。在InternetExplorer9中,下表描述了与缩放相关的鼠标和键盘快捷方式。

用户操作

键盘快捷键鼠标快捷键

放大Ctrl+加号Ctrl+<向前滚动滚轮>

缩小Ctrl+减号Ctrl+<向后滚动滚轮>

返回默认缩放级别Ctrl+0不适用

使用浏览器的滚动条可在缩放图中轻松进行平移。

如何让SVG整体任意自动缩放

有一个SVG地图,原始宽高已定,现在需要在任意分辨率下确保地图可以缩放到合理大小,并且是全图显示的,不能只出来一截半截的样子.

我们都知道SVG是矢量图,矢量图的最大优势就是可以任意缩放而不失真,关键是如何让SVG整体缩放呢?而且缩放时必须确保全图按比例缩放.

参考的实现,发现关键在与确定SVG的viewBox属性

将viewBox属性设置为:00原始svg的宽原始svg的高,再就可以任意修改svg的宽高,其内容就会自动缩放了

PS:如果你无法确定原始SVG的宽高可以通过一些矢量图编辑工具(例如:Inkscape)来获得

或者通过代码来获取

<svgxmlns=""version="1.1"

style="width:150px;height:150px;">

<circlecx="200"cy="200"r="200"fill="red"></circle>

<circlecx="300"cy="500"r="200"fill="red"></circle>

</svg>

//{x:0,y:0,width:500,height:700}

();

那么何为viewBox呢?

viewBox是SVG的虚坐标系,为根节点svg元素加上viewBox属性后,在svg下的各图形元素的大小和位置都是按viewBox限定的坐标,而不是页面的实际坐标

例如

<svgwidth="100px"height="100px"viewBox="00300300">

<rectx="5"y="15"width="200"height="200"/>

</svg>

在100x100的svg区域中,放入一个200x200的方块,按理不能正常显示,会被裁去一部分.但是因为加入了viewBox属性,svg区域会完整显示rect.可以理解为在svg中加入一个新坐标系,按上例把svg划分为300x300份,rect占用200x200份,而不是像素,实际图形会缩放或拉伸.

下面来看一个直观的例子,下面是我们原始的SVG内容

<svgxmlns=""version="1.1">

<!--这个圆的大小是400x400,那么这个SVG的宽和高就是400了-->

<circlecx="200"cy="200"r="200"fill="red"/>

</svg>

固定SVG的viewBox,测试任意宽高缩放

<svgxmlns=""version="1.1"width="100"height="100"

viewBox="00400400">

<!--固定viewBox,关键是确定原始SVG的宽高-->

<circlecx="200"cy="200"r="200"fill="red"/>

</svg>




显示器由16:9换成4:3,显示的图像变形,怎没办?
这个是由于你的显示器分辨率没有设置正确合适的,4:3的显示器是液晶的么?只有15英寸的才是4:3比例,1024X768.。。17\/19英寸的是5:4的,1280X1024

新买的华硕vg248QG为什么感觉字体很模糊?
屏幕分辨率提升到1920 x 1080之后,为了适应变化,系统会等比的将图标和字体放大,这样会导致软件中的字体模糊、发虚,要解决这个问题,主要有两种办法:一种是全局调整,将字体固定设置为100%大小。另一种是针对单个软件进行设置,禁用缩放功能。下面将来简单的介绍下这两种方法:一:全局调整,将字体大小...

优派VG2027wm基本参数
外观设计上,VG2027wm以黑色为机身主色调,内置音箱提供基本音频支持。显示器拥有47W的消耗功率,符合环保标准,通过了多项安规认证,如UL、CUL、FCC-B(ICES)等,确保了用户使用的安全性。此外,它还支持4:3画面缩放功能,方便不同比例画面的显示,机身可灵活调整,支持水平升降和垂直旋转。在附件方面...

电脑所有的浏览器全都是鼠标滚轮变成了缩放然还有打字也都不能正常...
你好。建议参考:我家电脑疯了 键位都错乱了 鼠标滚轮在网页时 变成缩放功能了 而且不能打字 有时候会这样_百度知道 http:\/\/zhidao.baidu.com\/link?url=cLctFZIxojIZ-AGyIXqhWA9CWcVg7MrJqBsoiUdWRMznNKfw5yztMWdILYpIehUEoK_ry0KIsQQksSBmoWyUma ...

想问下各位大神,华硕的VG27AQL1A小金刚MAX电竞显示器都支持什么色域...
推荐TUF GAMING VG27AQL1A小金刚max 27英寸 WQHD (2560x1440) IPS 电竞显示器配备 170Hz(超频)疾速刷新率,专为职业玩家及沉浸式游戏而打造 华硕动态影像清晰同步技术(ELMB SYNC)能够结合ELMB与G-SYNC技术,可消除残影和画面撕裂情形,让玩家享受清晰流畅的游戏快感 通过G-SYNC兼容性认证,默认开启VRR(...

hi3798mv310什么水平
视频、图形多阶垂直和水平缩放,无级缩放 支持屏幕镜像(Mirror)、视频旋转等功能 全格式3D视频处理及显 增强型2D图形加速引擎TDE和HWC 抗锯齿、抗闪烁、图像颜色亮度增强、去噪、De-interlace、锐化、亮度/色度/对比度/饱和度调节等处理功能 超低延时视频处理:音视频接口:支持PAL\/NTSC制式输出,支持...

如何让16:9的电脑显示屏按4:3比例显示?
首先,确认下显示器是否有支持设置的选项,按下Menu键,进入到OSD界面以后,选择图像页,发现此时的画面控制选项是灰色的,无法进入使用,如下图所示:想要将屏幕设置为4:3的显示比例可以参考以下方式 【NVIDIA显卡的设置】进入到NVIDIA控制面板后,选择调整桌面尺寸和设置,然后选择缩放里面的纵横比,如下图...

优派VG2427wm基本参数
优派VG2427wm采用黑色机身设计,尺寸为563.6×417.2×260.8mm,重量为5.3kg,内置音箱,便于用户使用。该显示器的功耗控制在47W,符合节能标准。它获得了多项安规认证,如UL、CUL等,安全可靠。此外,还支持4:3画面缩放功能,且机身设计灵活,可以进行水平升降和垂直旋转。在配件方面,包装清单包括显示...

永年县18863068199: 如何使用 SVG 进行缩放和平移 -
平怀连通: 对 SVG 图进行缩放和平移的最简单方法是使用浏览器自带的缩放和滚动功能.在 Internet Explorer 9 中,下表描述了与缩放相关的鼠标和键盘快捷方式.用户操作 键盘快捷键 鼠标快捷键放大 Ctrl + 加号 Ctrl + <向前滚动滚轮>缩小 Ctrl + 减号 Ctrl + <向后滚动滚轮>返回默认缩放级别 Ctrl + 0 不适用使用浏览器的滚动条可在缩放图中轻松进行平移.

永年县18863068199: 如何让SVG整体任意自动缩放 -
平怀连通: 有一个SVG地图, 原始宽高已定, 现在需要在任意分辨率下确保地图可以缩放到合理大小, 并且是全图显示的, 不能只出来一截半截的样子. 我们都知道SVG是矢量图, 矢量图的最大优势就是可以任意缩放而不失真, 关键是如何让SVG整体...

永年县18863068199: 怎么实现通过外部按钮触发svg的缩放 -
平怀连通: onmousemove 必须写在svg中,但svg中无法识别html的div标签,我试了一下 可以alert信息.但不能加载HTML元素别用embed.直接用svg嵌进去试试.

永年县18863068199: 如何在HTML5中使用SVG -
平怀连通: SVG 即 Scalable Vector Graphics,是一种用来绘制矢量图的 HTML5 标签.你只需定义好XML属性,就能获得一致的图像元素. 使用SVG之前先将标签加入到HTML body中.就像其他的HTML标签一样,你可以为SVG标签为之添加ID属性....

永年县18863068199: SVG是什么文件?SVG文件如何打开 -
平怀连通: 可缩放矢量图形 svg是矢量图文件,一般的图片查看工具无法打开,使用Adobe Illustrator可以查看而且能够再次编辑svg文件,还能导出保存为svg或其他格式的文件.

永年县18863068199: 如何在html页面中为<SVG>标签添加缩放滚动条 -
平怀连通: overflow:scroll; /*任何时候都强制显示滚动条*/ overflow:auto; /*需要的时候会出现滚动条*/ overflow-x:auto; /*控制X方向的滚动条*/ overflow-y:auto; /*控制Y方向的滚动条*/ 示例: 测试表格内的滚动条 表格内的滚动条: style="position:...

永年县18863068199: 怎么在网页中通过JAVAscript控制SVG图像放大缩小 -
平怀连通: SVG也可以设置id和class,所以可以操作SVG元素的style来调整图像尺寸

永年县18863068199: html5的svg制作地图的时候如何和实际的距离进行对应,放大和缩小 -
平怀连通: for (int sum; number<1000; number++){ i=number/100; j=(number-i*100)/10; k=number-i*100-j*10; sum=i*i*i+j*j*j+k*k*k; if (sum==number) System.out.println(number+" is a dafodil number! "); }

永年县18863068199: 如何给SVG填充和描边应用径向渐变 -
平怀连通: SVG线性渐变上篇文章中也提到,如果你理解了线性渐变的原理,学习径向渐变是很容易哒.使用 元素定义径向渐变,以及一些相关属性.我们还是一样,从一个简单...

永年县18863068199: 什么是SVG? -
平怀连通: SVG(可缩放矢量图形)编辑 可缩放矢量图形是基于可扩展标记语言(标准通用标记语言的子集),用于描述二维矢量图形的一种图形格式.它由万维网联盟制定,是一个开放标准.中文名可缩放矢量图形 外文名Scalable Vector Graphics 外语缩写SVG 开发商万维网联盟 发行时间1999年 格 式矢量图 延伸至可扩展标记语言 类 型图形格式 目录

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网