zoukankan      html  css  js  c++  java
  • UI组件之浮出层

    这次的任务是浮出层,查了网上的一些内容后大概了解了一些,有的比较复杂,有的比较简单,在这里做一个总结与梳理(简单一点的~),如果有不当或错误之处,希望大家多多指教:

    首先,我们的最终效果是这样的:

    以下都是一些关键代码,做了一些简化的

    先把html结构放出来:

    <div class="test">这是测试内容这是测试内容这是测试内容</div>  //少写了几个“测试内容”,太长了~
        <div id="mask"></div>
        <div id="horizen">
            <div id="horizenCon">
                <h1>浮出层标题</h1>
                <p>浮出层内容:点击下面的两个按钮以及浮出层外任何一处均可退出浮出层</p>
            </div>
            <div class="confirm">
                <button id="ensure">确定</button>
                <button id="cancle">取消</button>
            </div>
        </div>
        <button id="pop">弹出浮出层</button>

    我认为的浮出层就是先用一个超大的半透明黑布将所有内容覆盖掉,像下面这样:

        

    当然,受到图片大小的限制,这里的截图是网页的一部分,大家懂这个意思就行;

    为了实现这一点,我们需要一个半透明的遮罩层,可以用absolute来覆盖整个页面,代码如下:

    #mask {
    position: absolute; top:0; right: 0; bottom: 0; left:0; height: 1080px; background-color: rgba(0,0,0,0.7); z-index: 1000; }
    • 这里通过设置absolute的4个值,可以让mask覆盖整个页面。 
    • 这里因为遮罩层要覆盖整个页面,所以z-index的值设置的比较大。 
    • 半透明是用背景色rgba做的,也可以用opasity
    • 高度设置那么高是为了让滚动条显示出来

    遮罩层做好了,接下来就是我们的浮出层,浮出层我做的比较简单了,就是固定定位一下盒子就可以了,这里直接上代码:

    #horizen {
                position: fixed;
                left: 50%;
                top:50%;
                transform: translate(-50%,-50%);
                width: 400px;
                z-index: 1001;
                cursor:move;
            }
    • translate(x,y)可以根据自身宽高进行移动,括号内数值为正的话分别是向右和向下移动。 -50%是向左和向上移动自身一半,就能有居中的效果
    • cursor:move是为了等会移动浮出层用的,只是鼠标样式,加了更容易辨识,就像鼠标变成一个小手的形状你就知道这里有一个链接一样。
    • 至于浮出层里面的样式就自己随意设置就行了

      浮出层的样式就做好了,接下来只需要给按钮添加一个事件,它点击时可以让我们的样式显示或消失(其实就是改变display属性),以下是js代码:

    var mask =document.getElementById('mask');
    var horizen =document.getElementById('horizen');
    var ensure =document.getElementById('ensure');
    var cancle =document.getElementById('cancle');
    
        //改变浮出层的显示属性
        function horizen_display(dis){
                mask.style.display=dis;
                horizen.style.display=dis;
        }
    
        //点击弹出按钮,弹出浮出层
        function appear(){
            document.getElementById('pop').onclick=function(){
                horizen_display("block");
            }
        }
    
        //浮出层消失
        function disappear(){
            mask.onclick=function(){
                horizen_display("none");
            }
            ensure.onclick=function(){
                horizen_display("none");
            }
            cancle.onclick=function(){
                horizen_display("none");
            }
        }
     
       appear();
      disappear():

    ok,浮出层就做好了。至于拖拽浮出层移动,下次再来总结。

  • 相关阅读:
    牛客练习赛81 B. 小 Q 与彼岸花(DP/Trie/树状数组/FWT/好题)
    HDU6570 Wave(DP)
    HDU6567 Cotree(树的重心/树形DP)
    P1712 [NOI2016] 区间(双指针/线段树)
    P1063 [NOIP2006 提高组] 能量项链(区间DP)
    Jquery
    Jquery
    Jquery
    Jquery 学习
    JS学习
  • 原文地址:https://www.cnblogs.com/bax-life/p/7354024.html
Copyright © 2011-2022 走看看