【发布时间】:2014-12-23 12:56:50
【问题描述】:
我通常使用:
<style>
svg
{
height: 100%;
width: 100%;
}
</style>
设置内联 svg,例如:
<svg>
Content ...
</svg>
拉伸和覆盖屏幕。我正在使用变换来缩放图像,类似于浏览器缩放。当我弹出图像时会出现问题,因为它不在中心或不再拉伸。这是因为我使用:
var documentX = $(document).width();
var documentY = $(document).height();
offsetX = (documentX / 2) - window.x;
offsetY = (documentY / 2) - window.y;
$("svg").offset({top:offsetY,left:offsetX});
移动图像,然后根据用户在图像上单击的位置进行放大。如前所述,一旦我缩小,我需要图像恢复到最初的样子。我希望这是有道理的......
我更喜欢 jQuery 解决方案,但是如果不存在这样的 jQuery 解决方案,JavaScript 解决方案也可以。我试过了:
$("svg").css({"height":"100%","width":"100%"});
没有成功。这是我的 HTML 头:
<head>
<title>Main</title>
<style>
svg
{
height: 100%;
width: 100%;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<script type="text/javascript">
$(document).mousemove(function(e) {
window.x = e.pageX;
window.y = e.pageY;
});
</script>
<script>
function init()
{
window.zoom = 1;
window.isZoomed = 0;
window.zoomScale = 3;
}
function scale()
{
if (window.isZoomed == 0)
{
var documentX = $(document).width();
var documentY = $(document).height();
offsetX = (documentX / 2) - window.x;
offsetY = (documentY / 2) - window.y;
$("svg").offset({top:offsetY,left:offsetX})
document.body.style.msTransform = "scale(" + (window.zoom * window.zoomScale) + ")";
window.zoom = window.zoom * window.zoomScale;
window.isZoomed = 1;
}
else
{
document.body.style.msTransform = "scale(" + (window.zoom / window.zoomScale) + ")";
window.zoom = window.zoom / window.zoomScale;
window.isZoomed = 0;
<!-- Need to stretch to fit window here -->
}
}
</script>
</head>
我基本上需要这样做
svg
{
height: 100%;
width: 100%;
}
但是在 JavaScript/jQuery 中???
【问题讨论】:
标签: javascript jquery html css svg