博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解SVG的viewport,viewBox【1】
阅读量:7211 次
发布时间:2019-06-29

本文共 835 字,大约阅读时间需要 2 分钟。

hot3.png

viewport表示的是svg可视区大小,具体体现就是svg元素的width和height属性值所圈起来的区域:

    

上述svg代码便定义了一个400px*300px的viewpoint,默认单位是px,也可以是其他web单位。上述代码的效果是:

155433_IPkB_1267040.png

在一个400px*300px的舞台上的(10,5)坐标位置放了一个20px*15px的矩形。显示效果全在意料之中,但是,如果svg增加新的属性viewBox,情况就大不相同了,代码:

    

效果:

155901_xtIY_1267040.png

只是在svg标签中增加了

viewBox="0,0,40,30"

就发生如此大的变化,那viewBox的4个属性值分别是什么?它们在如何工作呢?

viewBox="0,0,40,30"//x:左上角横坐标,y:左上角纵坐标,width:宽度,height:高度

用鑫哥的比方就是:

“SVG就像是我们的显示器屏幕,viewBox就是截屏工具选中的那个框框,最终的呈现就是把框框中的截屏内容再次在显示器中全屏显示!”

viewBox的width\height越小,viewBox的效果越明显。好比我们截屏工具选中区域越小,后来截屏内容铺满屏幕时反差越大。

如果是极端情况,设置viewBox的width/height的大小和viewpoint也就是svg的width\height一样大小,那么即使使用了viewBox,也不会改变原有的效果,代码如下:

    

效果:

161822_mfNN_1267040.png

它和没有给svg使用viewBox时的情况是一样的。这和你把一个满屏截图铺满屏幕显示是一样的原理,感受不到缩放。


本文只是皮毛之皮毛,以后再一点点写流水账。这种技术可以怎么应用呢?类似百度地图、谷歌地图那种点击放大效果就是典型。

参考文章

转载于:https://my.oschina.net/710409599/blog/307658

你可能感兴趣的文章
Bmp图片的结构剖析与代码处理实践[Ruby]
查看>>
不一样的厦门,不一样的旅行!
查看>>
数据绑定(五)使用集合对象作为列表控件的ItemsSource
查看>>
Linux 性能测试工具UnixBench(转载)
查看>>
Android Espresso使用
查看>>
Sed 删除包含某些字符串的行
查看>>
iOS JSON序列化与反序列化
查看>>
maven的安装和eclipse的配置以及构建mahout基本项目
查看>>
SQL Server删除distribution数据库二
查看>>
从吸睛到吸金,城市发展的幕后推手竟然是……
查看>>
VMware ubuntu 添加新的挂载盘
查看>>
作为一枚学生党,如何快速通过拉好友赚取生活费!
查看>>
php请求页面将返回的页面发送email
查看>>
#土豆记事#教你开发Android App之 —— Hello Android
查看>>
安全机构 abuse.ch 公布近10万个恶意网站
查看>>
若依后台管理系统 3.3 发布,新增多项功能
查看>>
三步教你学会git
查看>>
高防服务器,高防免费服务器,阿里云服务器高防价格
查看>>
JavaScript中8个常见的陷阱
查看>>
使用脚本在Linux服务器上自动安装Kubernetes的包管理器Helm
查看>>