javascript – 缩放Raphael / SVG容器以适应所有内容
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 缩放Raphael / SVG容器以适应所有内容,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1686字,纯文字阅读大概需要3分钟。
内容图文
我有一些可能超出边界的Raphael / SVG项目.我想要的是能够自动缩放和居中SVG以显示所有内容.
我有一些部分工作的代码,它适当地集中,我只是无法弄清楚如何使缩放工作
编辑
这现在有效…但不是居中对齐,需要填充……
var maxValues = { x: 0, y: 0 };
var minValues = { x: 0, y: 0 };
//Find max and min points
paper.forEach(function (el) {
var bbox = el.getBBox();
if (bbox.y < minValues.y) minValues.y = bbox.y;
if (bbox.y2 < minValues.y) minValues.y = bbox.y2;
if (bbox.y > maxValues.y) maxValues.y = bbox.y;
if (bbox.y2 > maxValues.y) maxValues.y = bbox.y2;
if (bbox.x < minValues.x) minValues.x = bbox.x;
if (bbox.x2 < minValues.x) minValues.x = bbox.x2;
if (bbox.x > maxValues.x) maxValues.x = bbox.x;
if (bbox.x2 > maxValues.x) maxValues.x = bbox.x2;
});
var w = maxValues.x - minValues.x;
var h = maxValues.y - minValues.y;
console.log(minValues,maxValues,w,h)
paper.setViewBox(minValues.x, minValues.y, w, h, false);
解决方法:
我正在使用这段代码来集中包含我想要在几乎全屏显示的所有SVG的视图框.
var elmnt = $(viewport);
var wdif = screen.width - width;
var hdif = screen.height - height;
if (wdif < hdif){
var scale = (screen.width - 50) / width;
var ty = (screen.height - (height * scale)) / 2
var tx = 20;
}else{
var scale = (screen.height - 50) / height;
var tx = (screen.width - (width * scale)) / 2
var ty = 20;
}
elmnt.setAttribute("transform", "scale("+scale+") translate("+tx+","+ty+")");
它的作用是使用视口大小和屏幕大小之间的差异,并将其用作比例.当然,您需要将所有元素包含在视图框中.我希望这适合你.再见!
编辑
我做了这个小提琴…. http://jsfiddle.net/MakKZ/
虽然在原始片段中我使用了屏幕尺寸,但是在小提琴上,你会看到我使用的是jsfiddle使用的HTML元素的大小.无论你在屏幕上绘制多少个圆圈(或圆圈的大小),你总能看到它们.
内容总结
以上是互联网集市为您收集整理的javascript – 缩放Raphael / SVG容器以适应所有内容全部内容,希望文章能够帮你解决javascript – 缩放Raphael / SVG容器以适应所有内容所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。