zoukankan      html  css  js  c++  java
  • 网页点击按钮弹出遮罩层,拖动和关闭效果

    基于JavaScript的网页弹出层,鼠标按在弹出层的标题栏处,可以拖动该浮动层随意移动位置,不需要时也可以关闭,操作体验舒服,兼容性好,IE/火狐等众多浏览器下运行稳定、反应快速。代码表现方面,简洁务实,不玩虚的,拿去学习也相当不错。

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>弹出层并可拖拽</title>
    <style>
    html,body{height:100%;overflow:hidden;}
    body,div,h2{margin:0;padding:0;}
    body{font:12px/1.5 Tahoma;}
    li{ list-style-type:none}
    center{padding-top:10px;}
    button{cursor:pointer;}
    #overlay{position:absolute;top:0;left:0;100%;height:100%;background:#000;opacity:0.5;filter:alpha(opacity=50);display:none;}
    #win{position:absolute;top:50%;left:50%;400px;height:200px;background:#fff;border:4px solid #f90;margin:-102px 0 0 -202px;display:none;}
    h2{font-size:12px;height:18px;text-align:right;background:#FC0;border-bottom:3px solid #f90;padding:5px;cursor:move;}
    h2 span{color:#f90;cursor:pointer;background:#fff;border:1px solid #f90;padding:0 2px;}
    </style>
    <script>
    window.onload = function ()
    {
    var oWin = document.getElementById("win");
    var oLay = document.getElementById("overlay");
    var oBtn = document.getElementsByTagName("button")[0];
    var oClose = document.getElementById("close");
    var oH2 = oWin.getElementsByTagName("h2")[0];
    var bDrag = false;
    var disX = disY = 0;
    oBtn.onclick = function ()
    {
    oLay.style.display = "block";
    oWin.style.display = "block"
    };
    oClose.onclick = function ()
    {
    oLay.style.display = "none";
    oWin.style.display = "none"
    };
    oClose.onmousedown = function (event)
    {
    (event || window.event).cancelBubble = true;
    };
    oH2.onmousedown = function (event)
    {
    var event = event || window.event;
    bDrag = true;
    disX = event.clientX - oWin.offsetLeft;
    disY = event.clientY - oWin.offsetTop;
    this.setCapture && this.setCapture();
    return false
    };
    document.onmousemove = function (event)
    {
    if (!bDrag) return;
    var event = event || window.event;
    var iL = event.clientX - disX;
    var iT = event.clientY - disY;
    var maxL = document.documentElement.clientWidth - oWin.offsetWidth;
    var maxT = document.documentElement.clientHeight - oWin.offsetHeight;
    iL = iL < 0 ? 0 : iL;
    iL = iL > maxL ? maxL : iL;
    iT = iT < 0 ? 0 : iT;
    iT = iT > maxT ? maxT : iT;
    oWin.style.marginTop = oWin.style.marginLeft = 0;
    oWin.style.left = iL + "px";
    oWin.style.top = iT + "px";
    return false
    };
    document.onmouseup = window.onblur = oH2.onlosecapture = function ()
    {
    bDrag = false;
    oH2.releaseCapture && oH2.releaseCapture();
    };
    };
    </script>
    <meta charset="utf-8">
    </head>
    <body>
    <div id="overlay"></div>
    <div id="win"><h2><span id="close">×</span></h2>
    <li><a href='http://www.100sucai.com' target='_blank'>http://www.100sucai.com</a></li>
    <li><a href="http://www.100sucai.com/web/jquerytexiao/CSS3heHtml5/" title="CSS3和Html5">CSS3和Html5</a></li>
    <li><a href="http://www.100sucai.com/web/jquerytexiao/tubiaoyutuxing/" title="图表与图形">图表与图形</a></li>
    </div>
    <center><button>弹出层</button></center>
    </body>
    </html><br />
    

      

  • 相关阅读:
    【面积并】 Atlantis
    【动态前k大 贪心】 Gone Fishing
    【复杂枚举】 library
    【双端队列bfs 网格图建图】拯救大兵瑞恩
    【奇偶传递关系 边带权】 奇偶游戏
    【权值并查集】 supermarket
    CF w4d3 A. Pythagorean Theorem II
    CF w4d2 C. Purification
    CF w4d2 B. Road Construction
    CF w4d2 A. Cakeminator
  • 原文地址:https://www.cnblogs.com/good10000/p/4744114.html
Copyright © 2011-2022 走看看