带有嵌入脚本的SVG可扩展到浏览器的可用空间
SVG with embedded script to scale to browsers available space
我正在尝试创建一个完全独立的SVG文档,当加载到web浏览器中时,该文档会自动缩放并居中到可用空间。请注意,这不是关于html文档中的SVG的而。
这是文件进入:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.2"
width="600"
height="400"
docname="web-business-card.svg">
所以SVG文档的内部尺寸是600x400,这是我的嵌入式脚本:
<script type="text/javascript">
/* <![CDATA[ */
var fitObject = function() {
var svg = document.documentElement;
var zoom = Math.min((window.innerWidth/600),(window.innerHeight/400));
var left = parseInt(((window.innerWidth-(600*zoom))/2)/zoom);
var top = parseInt(((window.innerHeight-(400*zoom))/2)/zoom);
// set dynamic style attributes
svg.style.zoom = zoom;
svg.style.left = left+'px';
svg.style.top = top+'px';
}
document.addEventListener("DOMContentLoaded", fitObject);
window.onresize = fitObject;
/* ]]> */
</script>
这在我用于测试的Chromium浏览器中运行得很好,但在其他浏览器中完全失败。有人能指导我了解问题是什么以及我如何解决它吗?
您知道SVG文档可以自动扩展到其父容器而不需要任何脚本吗?
您只需要指定一个viewBox
属性。
因此,对于您的示例,设置width="100%"
和height="100%"
并添加viewBox="0 0 640 400"
。
现在,加载时,SVG应该会自动缩放到浏览器窗口。
相关文章:
- 导航栏没有调整到浏览器屏幕的大小
- 如何通过ajax将png图片从服务器发送到浏览器中显示
- 带有嵌入脚本的SVG可扩展到浏览器的可用空间
- 如何将调整后的密码保存到浏览器
- 如何将html对象传输到浏览器
- Chrome扩展程序:浏览器操作单击按钮工作一次
- 为什么它不将 JSON 返回到浏览器
- 将图像输出到浏览器,然后再将其保存到文件夹
- 如何检测旧版本的浏览器并重定向到浏览器支持页面
- 将html元素渲染到浏览器视口
- Make:如果父元素溢出,after元素将扩展到全宽
- 如何将Golang中的[][]字节发送到浏览器以解码为图像
- 将内容推送到浏览器..更改DOM
- 将手风琴滑动到浏览器顶部
- Sublime Text 3-can't将javascript输出到浏览器
- PHP,X-SendFile:将文件与输出文本一起发送到浏览器(通过echo)
- 如何在用户使用javascript向下滚动时创建一个附加到浏览器窗口顶部的层
- Chrome 扩展程序 - 浏览器找不到图片
- 将无序列表扩展到浏览器宽度(html/css)
- Chrome扩展:如何绑定/挂钩到浏览器的“搜索调用”事件