javascript - HTML、JavaScript 和 CSS 中的自定义弹出框

标签 javascript html css popup

<分区>

我正在尝试创建一个类似于此的弹出框:Click Here

我只想使用 JavaScript。我意识到提出这个要求可能会使这项任务变得更加困难,但我仍在努力学习 JavaScript,所以我真的不想把自己与 JQuery 搞混。我基本上想制作一个提示或警报样式的弹出框。在此先感谢您的帮助!

最佳答案

这里是自定义弹窗的视频教程 https://www.youtube.com/watch?v=zK4nXa84Km4

    <!-- html file -->
    <div id="blanket" style="display:none;"></div>
    <div id="popUpDiv" style="display:none;">

        <a href="#" onclick="popup('popUpDiv')" >Click to Close CSS Pop Up</a>
    </div>  
   <a id="link" onclick="popup('popUpDiv')">Click to Open CSS Pop Up</a>

--脚本----------------

function toggle(div_id) {
    var el = document.getElementById(div_id);
    if ( el.style.display == 'none' ) { el.style.display = 'block';}
    else {el.style.display = 'none';}
}
function blanket_size(popUpDivVar) {
    if (typeof window.innerWidth != 'undefined') {
        viewportheight = window.innerHeight;
    } else {
        viewportheight = document.documentElement.clientHeight;
    }
    if ((viewportheight > document.body.parentNode.scrollHeight) && (viewportheight > document.body.parentNode.clientHeight)) {
        blanket_height = viewportheight;
    } else {
        if (document.body.parentNode.clientHeight > document.body.parentNode.scrollHeight) {
            blanket_height = document.body.parentNode.clientHeight;
        } else {
            blanket_height = document.body.parentNode.scrollHeight;
        }
    }
    var blanket = document.getElementById('blanket');
    blanket.style.height = blanket_height + 'px';
    var popUpDiv = document.getElementById(popUpDivVar);
    popUpDiv_height=blanket_height/2-200;//200 is half popup's height
    popUpDiv.style.top = popUpDiv_height + 'px';
}
function window_pos(popUpDivVar) {
    if (typeof window.innerWidth != 'undefined') {
        viewportwidth = window.innerHeight;
    } else {
        viewportwidth = document.documentElement.clientHeight;
    }
    if ((viewportwidth > document.body.parentNode.scrollWidth) && (viewportwidth > document.body.parentNode.clientWidth)) {
        window_width = viewportwidth;
    } else {
        if (document.body.parentNode.clientWidth > document.body.parentNode.scrollWidth) {
            window_width = document.body.parentNode.clientWidth;
        } else {
            window_width = document.body.parentNode.scrollWidth;
        }
    }
    var popUpDiv = document.getElementById(popUpDivVar);
    window_width=window_width/2-200;//200 is half popup's width
    popUpDiv.style.left = window_width + 'px';
}
function popup(windowname) {
    blanket_size(windowname);
    window_pos(windowname);
    toggle('blanket');
    toggle(windowname);     
}

CSS

#blanket {
   background-color:#111;
   opacity: 0.65;
   *background:none;
   position:absolute;
   z-index: 9001;
   top:0px;
   left:0px;
   width:100%;
}

#popUpDiv {
    position:absolute;
    background:url(pop-back.jpg) no-repeat;
    width:400px;
    height:400px;
    border:5px solid #000;
    z-index: 9002;
}

#popUpDiv { a position:relative; top:20px; left:20px}

Custom Popup Tutorial

关于javascript - HTML、JavaScript 和 CSS 中的自定义弹出框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16653238/

上一篇:jquery - 单击按钮以更改按钮背景图像

下一篇:html - 如何标记多个元素?

相关文章:

JavaScript (jQuery) 禁用复选框问题

css - 在顶部对齐图标而不偏移高度

javascript - 图片宽度 :auto and max-height after changing parent block height

javascript - JavaScript 中的多维数组 : Cannot set property '0' of undefined

javascript - 无法通过 iframe 添加 cookie

php - 自动完成不适用于动态创建的行

javascript - 如何解除绑定(bind)此 .click 操作?

容器 div 内的 JavaScript div 不会执行某些代码

php、mysql、jquery、表单元素链选择

javascript - 改进 JavaScript - 用于事件菜单和显示/隐藏 div 的 jQuery 代码