gpt4 book ai didi

javascript - 动态的,依赖多边形 - html5 中的 svg

转载 作者:行者123 更新时间:2023-11-28 04:04:19 25 4
gpt4 key购买 nike

我尝试创建多边形作为菜单的背景 ( please see this attachment ),它应该缩放(响应式设计)。

我是否需要监听大小变化并使用 javascript 更改 main_menue_polygon 多边形元素的点?也许有更好、更干净的 css 实现?

请注意,我将使用 Bootstrap 。菜单应从 Bootstrap 主容器左侧约 50px 处开始,到 Bootstrap 主容器右侧约 50px 处结束。

<div style="width: 1138px; height: 555px">
<img src="example-picture1.jpg"
</div>

<svg width="1300" height="200" id="main_menue_svg">
<polygon id="main_menue_polygon" points="0,0 33,33 0,66 1244,66 1211,33 1244,0 0,0"
style="fill:rgb(51, 76, 25);stroke:rgb(51, 76, 25);stroke-width:0;fill-rule:evenodd;" />
</svg>

最佳答案

您可以使用边界框来设置 svg 的宽度/高度和 viewBox。下面的示例使用您的多边形,并响应窗口大小和调整大小。

<!DOCTYPE HTML>

<html>

<head>
<title>Resize Polygon</title>
</head>

<body>
<svg style='position:absolute;top:0px;left:0px;' >
<polygon id="main_menue_polygon" points="0,0 33,33 0,66 1244,66 1211,33 1244,0 0,0"
style="fill:rgb(51, 76, 25);stroke:rgb(51, 76, 25);stroke-width:0;fill-rule:evenodd;" />
</svg>

<script>
//--onload, onresize----
function resizePolygon()
{
var mySVG=document.getElementsByTagName("svg")[0]
var svgW=window.innerWidth
var svgH=window.innerHeight
var bb=mySVG.getBBox()
var bbx=bb.x//-300
var bby=bb.y
var bbw=bb.width
var bbh=bb.height

mySVG.setAttribute("viewBox",bbx+" "+bby+" "+bbw+" "+bbh )
mySVG.setAttribute("width",svgW)
mySVG.setAttribute("height",svgH)
}
resizePolygon(); //---init window---
document.addEventListener("onload",resizePolygon(),false)
window.onresize=resizePolygon</script>

</body>

</html>

关于javascript - 动态的,依赖多边形 - html5 中的 svg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43031558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com