可以单独使用 jQuery / HTML / CSS 来动画块元素从左下角到右上角的对角线过渡。那么三角形填充过渡期,直到块被填充?
我在这之后,因为我的用户使用不支持 CSS3 转换的浏览器。理想情况下,这适用于 Chrome 和 IE8+
经过一段时间,这就是我得到的:
在 IE8+ 下工作 | 铬 | 火狐
CSS
div.arrow {
width: 0;
height: 0;
border-left: 0px solid transparent; /* left arrow slant */
border-right: 50px solid transparent; /* right arrow slant */
border-bottom: 50px solid #bb0000; /* bottom, add background color here */
font-size: 0;
line-height: 0;
bottom: 0;
position: absolute;
}
div.cover {
width: 0;
height: 0;
border-left: 0px solid transparent; /* left arrow slant */
border-right: 50px solid transparent; /* right arrow slant */
border-bottom: 50px solid #FFF; /* bottom, add background color here */
font-size: 0;
line-height: 0;
bottom: -1px;
left: 0px;
z-index: 100;
position: absolute;
}
div.topLeft {
overflow: hidden;
position: absolute;
height: 300px;
width: 300px;
border: 1px solid #bb0000;
}
div.topRight {
overflow: hidden;
position: absolute;
left: -2px;
top: -2px;
height: 300px;
width: 300px;
border: 1px solid #bb0000;
}
div.wrap {
overflow: hidden;
position: absolute;
height: 300px;
width: 300px;
border: 0px solid #bb0000;
}
HTML
<div class="wrap">
<div class="topLeft"></div>
<div class="topRight"></div>
<div class="cover"></div>
<div class="arrow"></div>
</div>
jQuery
$(".wrap").hover(function(){
arrow = $(this).find(".arrow");
$(arrow).stop().animate({
borderBottomWidth: "600px",
borderRightWidth: "600px"
}, 500)
},function(){
arrow = $(this).find(".arrow");
$(arrow).stop().animate({
borderBottomWidth: "50px",
borderRightWidth: "50px"
}, 500)
});