<style>

.frame
{
    position:relative;
    width:500px;
    padding:20px;
    border-bottom: none;
    box-sizing:border-box;
}

.frame__image
{
    position:relative;
    z-index:20;
    margin-bottom:19px;
}

.frame__bar
{
    position:relative;
    bottom:0;
    left:0;
    width:100%;
    height:44px;
    overflow:hidden;
    transform-origin: center 22.5px;
}
.frame__bar span
{
    display: block;
    position: absolute;
    top: -10.5px;
    left: 50%;
    width: 20px;
    height: 20px;
    border: 5px solid #000;
    border-right-color: transparent;
    border-bottom-color: transparent;
    transform: translate(-50%, 20px) rotate(45deg);
    transition: left 0.4s;
}
.frame__bar span::before, .frame__bar span::after
{
    content: " ";
    display: block;
    position: absolute;
    width: 1000px;
    height:0px;
    border-top: 5px solid black;
    transform:rotate(-45deg);
}
.frame__bar span::before
{
    bottom: -0.5px;
    right: 20px;
    transform-origin: right bottom;
}
.frame__bar span::after
{
    top: -4px;
    left: 17px;
    transform-origin: left top;
}
.frame__bar--down
{
    transform: scaleY(-1);
}
.frame__bar--up
{
    transform: scaleY(1);
}
.frame__bar--1-3 span
{
    left:16.6%;
}
.frame__bar--2-3 span
{
    left:50%;
}
.frame__bar--3-3 span
{
    left:83%;
}

.frame__bracket
{
    position:relative;
    display:block;
    width:100%;
    height:0px;
    top:-200px;
    z-index:10;
    border-top:5px solid black;
}
.frame__bracket::before, .frame__bracket::after
{
    content:" ";
    display:block;
    width:20px;
    height:171px;
    position:absolute;
    top:-5px;
    border:5px solid black;
}
.frame__bracket::before
{
    border-right-width: 0px;
    left:-20px;
}
.frame__bracket::after
{
    border-left-width: 0px;
    right:-20px;
}

.frame__button
{
    position:relative;
    display:block;
    float:left;
    padding:5px 0px 5px 0px;
    box-sizing: border-box;
    width:33.3%;
    text-align:center;
    cursor:pointer;
}
.frame__button:hover::before
{
    content: " ";
    display: block;
    width: 7px;
    height: 7px;
    background: black;
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-5px) rotate(45deg);
    transition: top 0.4s, bottom 0.4s;
}
.frame__button--upper:hover::before
{
    top:auto;
    bottom:-9px;
}
.frame__button[data-frame-active='true']:hover::before
{
    bottom:auto;
    top: -30px;
}
.frame__button--upper[data-frame-active='true']:hover::before
{
    bottom: -26px;
    top:auto;
}
</style>
<div class="frame">
    <div class="frame__image">
        <img style="display:block; width:100%; height:auto;" src="https://via.placeholder.com/1024x512.png"/>
    </div>
    <div class="frame__button frame__button--upper">Cover</div><div class="frame__button frame__button--upper">Back </div><div class="frame__button frame__button--upper">Spine</div>

    <div class="frame__bar"><span></span></div>
    <div class="frame__bracket"></div>

    <div class="frame__button">Intro</div><div class="frame__button">1 & 2</div><div class="frame__button">3 & 4</div>
</div>

<script>
    function frame__setup(inFrame)
    {
        var buttons = inFrame.querySelectorAll(".frame__button");
        var bar = inFrame.querySelector(".frame__bar");
        var active = false;

        function activate(inButton)
        {
            var index = parseInt(inButton.getAttribute("data-frame-index"));
            var classX = "frame__bar--" + ((index % 3)+1) + "-3";
            var classY = index > 2 ? "frame__bar--down" : "frame__bar--up";

            bar.setAttribute("class", "frame__bar " + classX + " " + classY);

            if(active)
            {
                active.setAttribute("data-frame-active", "false");
            }
            active = inButton;
            inButton.setAttribute("data-frame-active", "true");
        }
        for(var i=0; i<buttons.length; i++)
        {
            buttons[i].setAttribute("data-frame-index", i);
            buttons[i].setAttribute("data-frame-active", "false");
            buttons[i].addEventListener("click", function(){ activate(this); });
        }

        activate( buttons[0] );
    }

    frame__setup(document.querySelector(".frame"));
</script>