【发布时间】:2018-12-18 02:49:12
【问题描述】:
对于一个项目,我需要制作一个包含三个区域的页面,每个区域的形状都不同。
像这样:
接触点必须始终位于页面中间,并且每个区域都有一张图片作为背景。单击特定区域的任意位置会将您重定向到另一个页面。
我已经尝试过使用 SVG,但我无法让图像保持相同的纵横比,但 SVG 会根据页面调整大小
html, body {
margin: 0;
height: 100%;
}
svg {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100vh;
}
<svg viewBox="0 0 1920 1080" version="1.1" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none">
<pattern id="image" patternUnits="userSpaceOnUse" width="1920" height="1080" x="0" y="0">
<image xlink:href="https://upload.wikimedia.org/wikipedia/commons/3/38/Bangalore_Panorama_edit1.jpg" x="0" y="0" width="100%" height="100%" preserveAspectRatio="xMinYMax slice"/>
</pattern>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Artboard">
<polygon id="top" points="960 540 0 2.27373675e-13 1920 0" fill="red"></polygon>
<polygon id="left" points="960 1080 0 1080 0 0 960 540"></polygon>
<polygon id="bottom" points="960 1080 960 540 1920 0 1920 1080" fill="blue"></polygon>
<use href="#left" fill="url(#image)"></use>
</g>
</g>
</svg>
【问题讨论】:
-
如果前面有图片,颜色的意义何在?您是否打算添加不透明度:0.5?
-
嗯,看起来不错,不是吗?究竟是什么问题?
-
在我看来,它看起来在中间
-
@wayneOS 问题是调整窗口大小时图片的纵横比会发生变化
标签: javascript html css svg canvas