我需要创建一个对角拆分的目标网页。 像这样的东西
我需要页面的两个区域都是可点击的,并且在最好的情况下,一切都应该适应用户的监视器,以便监视器总是分成两半。
我怎么能这样做?我应该使用帆布吗?任何建议都是受欢迎的,如果我使用帆布也可以回退。
答案 0 :(得分:5)
这可以通过以下几种方式实现:
1)在使用clip-path
<强> HTML 强>
<div>
<a href="#1"></a>
<a href="#2"></a>
</div>
<强> CSS 强>
a {
position: absolute;
top: 0;
left: 0;
height: 100vh;
width: 100%;
display: block;
}
a:first-child {
-webkit-clip-path: polygon(0 0, 0 100vh, 100% 100vh);
clip-path: polygon(0 0, 0 100vh, 100% 100vh);
background: #d6d6d6;
}
a:last-child {
-webkit-clip-path: polygon(0 0, 100% 0, 100% 100vh);
clip-path: polygon(0 0, 100% 0, 100% 100vh);
background: #212121;
}
2)在较新的浏览器上,只涉及一些javascript和2D Transformation
<强> HTML 强>
<div>
<section><a href="#1"></a></section>
<section><a href="#2"></a></section>
</div>
<强> CSS 强>
html, body, div{ height: 100%; width: 100%; padding: 0; margin: 0; }
div { overflow : hidden; position: relative; }
section {
position : absolute;
top : -100%;
height : 500vw;
width : 500vh;
background : #ccc;
-webkit-transform-origin: 0 0;
-moz-transform-origin: 0 0;
transform-origin: 0 0;
}
section + section {
background : #333;
top : 0%;
}
section a { display: block; width: 100%; height: 100%; cursor: pointer; }
<强> JS / jQuery的强>:
$(function() {
$(window).on('resize', function() {
var h = $(document).height(),
w = $(document).width();
/* Math.atan() function returns the arctangent (in radians)
* of a number and 1 rad ~= 57.29577 deg
*/
var angle = Math.atan(h/w) * 57.29577;
var rotateProperty = "rotate(" + angle + "deg)";
$('section').css({
"-webkit-transform": rotateProperty,
"-moz-transform": rotateProperty,
"transform": rotateProperty
});
})
.triggerHandler('resize');
});
答案 1 :(得分:1)
假设您正在谈论HTML,您可以使用带有图像映射的图像
答案 2 :(得分:0)
我知道这是一个古老的话题,但我自己一直在寻找解决方案,最终确定SVG是真正的跨浏览器答案。您可以直接在SVG中拥有链接。
html, body {
margin: 0;
}
div {
position: absolute;
width: 100%;
height: 100%;
}
svg {
display: block;
width: 100%;
height: 100%;
}
svg > a:first-child > path {
cursor: pointer;
fill: #ccc;
}
svg > a:last-child > path {
cursor: pointer;
fill: #999;
}
&#13;
<div>
<svg viewBox="0 0 100 100" preserveAspectRatio="none">
<a href="#1"><path d="M 0 0 L 100 100 L 100 0 z"></path></a>
<a href="#2"><path d="M 100 100 L 0 100 L 0 0 z"></path></a>
</svg>
</div>
&#13;
此解决方案适用于现代浏览器,Edge和IE11。我没有测试任何旧浏览器。
由于某些原因,Chrome不会显示&#34;指针&#34;游标,除非它被专门添加到路径CSS。