Triangular Hover

by secretgspot

HTML

<div id="square"></div>

CSS

#square {
    width: 200px;
    height: 200px;
    background-color: yellow;
}

.top:before {
    content: "";
    width: 0;
    height: 0;
    border-bottom: 100px solid transparent;
    border-right: 100px solid transparent;
    border-top: 100px solid cyan;
    border-left: 100px solid cyan;
    z-index: 2;
    position: absolute;
    top: 0;
    left: 0;
}

.bottom:before {
    content: "";
    width: 0;
    height: 0;
    border-bottom: 100px solid magenta;
    border-right: 100px solid magenta;
    border-top: 100px solid transparent;
    border-left: 100px solid transparent;
    z-index: 2;
    position: absolute;
    top: 0;
    left: 0;
}

JavaScript

document.id('square').addEvents({
    'mousemove': function (e) {
        if ((200 - e.page.x) + (200 - e.page.y) < 200) {
            document.id('square').removeClass('top').addClass('bottom');
        } else {
            document.id('square').removeClass('bottom').addClass('top');
        }
    },
    
    'mouseleave': function () {
        document.id('square').removeClass('top').removeClass('bottom');
    }
});