zoukankan      html  css  js  c++  java
  • Js控制弹窗实现在任意分辨率下居中显示

    弹窗居中比较烦人的是怎么才能在任意分辨率下实现居中显示。
    1,html部分

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>弹出窗口_www.jbxue.com</title>
    <link type="text/css" rel="stylesheet" href="window.css">
    <script language="javascript" type="text/javascript" src="../../jquery/jquery.js"></script>
    <script language="javascript" type="text/javascript" src="window.js"></script>
    <script language="javascript">
    $(document).ready(function (){
    $("#btn_center").click(function (){
    $(window).scroll(function (){
    popcenterWindow();
    });
    });
    $("#btn_right").click(function (){
    $(window).scroll(function (){
    poprightWindow();
    });
    });
    $("#btn_left").click(function (){
    $(window).scroll(function (){
    popleftWindow();
    });
    });
    });
    </script>
    </head>
    <body>
    <input type="button" value="弹出居中的窗口" id="btn_center">
    <input type="button" value="弹出居右的窗口" id="btn_right">
    <input type="button" value="弹出居左的窗口" id="btn_left">
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <div class="window" id="center">
    <div class="title"><img src="close.gif">csdn欢迎您</div>
    <div class="content">哈哈哈哈哈哈哈</div>
    </div>
    <div class="window" id="right">
    <div class="title"><img src="close.gif">csdn欢迎您</div>
    <div class="content">哈哈哈哈哈哈哈</div>
    </div>
    <div class="window" id="left">
    <div class="title"><img src="close.gif">csdn欢迎您</div>
    <div class="content">哈哈哈哈哈哈哈</div>
    </div>
    </body>
    </html>

    2,js代码部分

    <script>
    //窗口的高度
    var windowHeight;
    //窗口的宽度
    var windowWidth;
    //弹窗的高度
    var popHeight;
    //弹窗的宽度
    var popWidth;
    //滚动条滚动的高度
    var scrollTop;
    //滚动条滚动的宽度
    var scrollleft;
    //延时的时间
    var timeout;
    function init(){
    //获得窗口的高度
    windowHeight=$(window).height();
    //获得窗口的宽度
    windowWidth=$(window).width();
    //获得弹窗的高度
    popHeight=$(".window").height();
    //获得弹窗的宽度
    popWidht=$(".window").width();
    //获得滚动条的高度
    scrollTop=$(window).scrollTop();
    //获得滚动条的宽度
    scrollleft=$(window).scrollLeft();
    }
    //定义关闭窗口
    function closeWindow(){
    $(".title img").click(function (){
    $(this).parent().parent().hide("slow");
    
    });
    
    }
    //定义弹出窗口的方法
    function popcenterWindow(){
    //先清空上一次的延迟
    clearTimeout(timeout);
    timeout=setTimeout(function (){
    init();
    var popY=(windowHeight-popHeight)/2+scrollTop;
    var popX=(windowWidth-popWidht)/2+scrollleft;
    $("#center").animate({top:popY,left:popX},300).show("slow");},300);
    closeWindow();
    }
    function popleftWindow(){
    clearTimeout(timeout);
    timeout=setTimeout(function (){
    init();
    var popY=windowHeight+scrollTop-popHeight-10;
    var popX=scrollleft-5;
    $("#left").animate({top:popY,left:popX},300).show("slow");},300);
    closeWindow();
    }
    function poprightWindow(){
    clearTimeout(timeout);
    timeout=setTimeout(function (){
    init();
    var popY=windowHeight-popHeight+scrollTop-10;
    var popX=windowWidth-popWidht+scrollleft-10;
    $("#right").animate({top:popY,left:popX},300).show("slow");},300);
    closeWindow();
    }
    </script>

    3,CSS代码部分

    .window{
    width:250px;
    background-color:#3FF;
    padding:2px;
    margin:5px;
    position:absolute;
    display:none;
    }
    .content{
    height:150px;
    background-color:#FFF;
    padding:2px;
    font-size:14px;
    overflow:auto;
    }
    
    .title{
    padding:2px;
    color:#999;
    font-size:14px;
    }
    .title img{
    float:right;
    cursor:pointer;
    }
     
  • 相关阅读:
    eslint 的 env 配置是干嘛使的?
    cookie httpOnly 打勾
    如何定制 antd 的样式(theme)
    剑指 Offer 66. 构建乘积数组
    剑指 Offer 65. 不用加减乘除做加法
    剑指 Offer 62. 圆圈中最后剩下的数字
    剑指 Offer 61. 扑克牌中的顺子
    剑指 Offer 59
    剑指 Offer 58
    剑指 Offer 58
  • 原文地址:https://www.cnblogs.com/cfinder010/p/3231670.html
Copyright © 2011-2022 走看看