在复杂形状容器内单击时隐藏/显示面板

Hide / Show panel on click inside complex shape container

只是想找出使这项工作可行的布局。当您单击图标面板底部的箭头形状时,我必须显示和隐藏一个菜单,然后当我再次单击相同的形状时显示该面板。困扰我的部分是如何塑造箭头容器,我应该使用 css3 形状还是只为该部分使用背景 img(这对我来说似乎不太可能,因为它必须与图标容器完美契合)或者只是制作整个东西(tne 容器和底部形状 css3 形状)。

我知道如何使向上/向下切换起作用,但只是尝试以尽可能最好的方式对其进行布局,任何想法都将不胜感激。我可以使用 css3 shapes、flex 等,交叉浏览对这个来说不是问题。

图片如下:

这是我目前的html:

            <nav class="l-apps l-container">
            <ul>
                <li>
                    <img src="assets/img/icons/google.png">  
                    <a href="#">Lorem Ipsum</a>
                </li>
                <li>
                    <img src="assets/img/icons/word.png">                     
                    <a href="#">Lorem Ipsum</a>
                </li>
                <li>
                    <img src="assets/img/icons/file.png">
                    <a href="#">Lorem Ipsum</a>                         
                </li>
                <li>
                    <img src="assets/img/icons/network.png">                         
                    <a href="#">Lorem Ipsum</a>
                </li>
                <li>
                    <img src="assets/img/icons/powerpoint.png">                         
                    <a href="#">Lorem Ipsum</a>
                </li>
                <li>
                    <img src="assets/img/icons/diamond.png">                         
                    <a href="#">Lorem Ipsum</a>
                </li>
                <li>
                    <img src="assets/img/icons/other.png">                         
                    <a href="#">Lorem Ipsum</a>
                </li>
                <li>
                    <img src="assets/img/icons/pencil.png">                         
                    <a href="#">Lorem Ipsum</a>
                </li>
                <li>
                    <img src="assets/img/icons/excel.png">                         
                    <a href="#">Lorem Ipsum</a>
                </li>
                <li>
                    <img src="assets/img/icons/triangle.png">                         
                    <a href="#">Lorem Ipsum</a>
                </li>
            </ul>
        </nav>

我的想法是

$('div').on('click', function(){
  var _class = $(this).hasClass('a-top') ? 'b-top' : 'a-top';
  $(this).attr('class',_class);
});
.a-top {
  background: #f00;
  height: 50px;
  top:0px;
  transition: all .3s ease-out;
}

.b-top {
  background: #f00;
  height: 100px;
  transition: all .3s ease-out;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="a-top">
  menu click me.
</div>

好吧,我想办法以防有一天其他人需要这样做:

基本相同 html 但为 css3 形状的 div 添加了一些带有切换触发器的容器:

            <nav class="l-apps l-container">
            <ul>
                <li>
                    <img src="assets/img/icons/google.png">  
                    <a href="#">Lorem Ipsum</a>
                </li>
                <li>
                    <img src="assets/img/icons/word.png">                     
                    <a href="#">Lorem Ipsum</a>
                </li>
                <li>
                    <img src="assets/img/icons/file.png">
                    <a href="#">Lorem Ipsum</a>                         
                </li>
                <li>
                    <img src="assets/img/icons/network.png">                         
                    <a href="#">Lorem Ipsum</a>
                </li>
                <li>
                    <img src="assets/img/icons/powerpoint.png">                         
                    <a href="#">Lorem Ipsum</a>
                </li>
                <li>
                    <img src="assets/img/icons/diamond.png">                         
                    <a href="#">Lorem Ipsum</a>
                </li>
                <li>
                    <img src="assets/img/icons/other.png">                         
                    <a href="#">Lorem Ipsum</a>
                </li>
                <li>
                    <img src="assets/img/icons/pencil.png">                         
                    <a href="#">Lorem Ipsum</a>
                </li>
                <li>
                    <img src="assets/img/icons/excel.png">                         
                    <a href="#">Lorem Ipsum</a>
                </li>
                <li>
                    <img src="assets/img/icons/triangle.png">                         
                    <a href="#">Lorem Ipsum</a>
                </li>
            </ul>
            <div class="shape-container">    
                <div class="base">
                    <a href="#"><i class="icon-toogle fa fa-angle-double-up"></i></a>
                </div>
            </div>        
        </nav>

那么这是形状的 scss:

    .base {
    background: $blue;
    display: inline-block;
    height: 105px;
    margin-top: 50px;
    position: relative;
    width: 150px;
    .icon-toogle {
        position:absolute;
        color: $white;
        font-size:1.8em;
        bottom:-.35em;
        left:0;
        right:0;
        margin:auto;
        text-align:center;
    }
    &:before {
        border-top: 20px solid $blue;
        border-left: 75px solid transparent;
        border-right: 75px solid transparent;            
        content: "";
        height: 0;
        left: 0;
        position: absolute;
        bottom: -20px;
        width: 0;
    }
}

现在我遇到了其他问题,整个形状都有图案背景图像(图标容器和底部的 css 形状),我无法将背景图像放到形状中,可能是因为我使用边框来制作 css 形状。有没有办法在形状上放置背景图像?