前端实例练习 - 模态框

模态框

代码储存在Github
效果预览

初衷:很多人在初学前端的时候都会问,“如何入门前端?”
同为在前端学习道路上,奋力追赶的一员,本人对于目前网络上所能看到的 “入门级” 的教材并不太满意。学习一门新知识,实例是尤其重要的。在这里本人整理了目前页面上常见功能实现的具体实例。愿能为大家提供一些帮助。
希望能够与大家互相分享,共同进步。

效果预览

HTML 部分

    <!-- 触发按钮 -->
    <button id="triggerBtn">模态框</button>

    <!-- 模态框 -->
    <div id="myModal" class="modal">
        <div class="modal-content">
            <div class="modal-header">
                <h2>头部</h2>
                <span id="closeBtn" class="close">&times;</span>
            </div>
            <div class="modal-body">
                <p>这是一个模态框!</p>
                <p>喜欢就点个赞吧!</p>
            </div>
            <div class="modal-footer">
                <h3>尾部</h3>
            </div>
        </div>
    </div>

CSS 部分

模态框样式

/*模态框*/
.modal {
    display: none; /* 默认隐藏 */
    position: fixed; /* 根据浏览器定位 */
    z-index: 1; /* 放在顶部 */
    left: 0;
    top: 0;
    width: 100%; /* 全宽 */
    height: 100%; /* 全高 */
    overflow: auto; /* 允许滚动 */
    background-color: rgba(0,0,0,0.4); /* 背景色 */
}

模态框内容样式

/*模态框内容*/
.modal-content {
    display: flex; /*采用flexbox布局*/
    flex-direction: column; /*垂直排列*/
    position: relative;
    background-color: #fefefe;
    margin: 15% auto; /*距顶部15% 水平居中*/
    padding: 20px;
    border: 1px solid #888;
    width: 80%;
    animation: topDown 0.4s; /*自定义动画,从模态框内容上到下出现*/
}

@keyframes topDown {
    from {top: -300px; opacity: 0}
    to {top: 0; opacity: 1}
}

/*模态框头部*/
.modal-header {
    display: flex; /*采用flexbox布局*/
    flex-direction: row; /*水平布局*/
    align-items: center; /*内容垂直居中*/
    justify-content: space-between;
}

/*关闭X 样式*/
.close {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
}

.close:hover {
    color: black;
    text-decoration: none;
    cursor: pointer;
}

扩展阅读: CSS3 animation 属性

JavaScript 内容

隔离全局

(function() {

})();

把JS代码放到一个单独的自调用匿名函数中。

扩展阅读:深入理解(function() {})();

建立模态框对象

    /*建立模态框对象*/
    var modalBox = {};

    /*获取模态框*/
    modalBox.modal = document.getElementById("myModal");

    /*获得trigger按钮*/
    modalBox.triggerBtn = document.getElementById("triggerBtn");

    /*获得关闭按钮*/
    modalBox.closeBtn = document.getElementById("closeBtn");

    /*模态框显示*/
    modalBox.show = function() {
        console.log(this.modal);
        this.modal.style.display = "block";
    }

    /*模态框关闭*/
    modalBox.close = function() {
        this.modal.style.display = "none";
    }

    /*当用户点击模态框内容之外的区域,模态框也会关闭*/
    modalBox.outsideClick = function() {
        var modal = this.modal;
        window.onclick = function(event) {
            if(event.target == modal) {
                modal.style.display = "none";
            }
        }
    }

    /*模态框初始化*/
    modalBox.init = function() {
        var that = this;
        this.triggerBtn.onclick = function() {
            that.show();
        }
        this.closeBtn.onclick = function() {
            that.close();
        }
        this.outsideClick();
    }

调用模态框

modalBox.init();


好啦,现在我们已经写完。

怎么样,是不是很简单。赶快打开浏览器看看吧!

在这里,只是给大家提供一种思路,参考。
具体的实现,每个人都可以有不同的方法。
请大家赶快发挥想象,把你最想实现的功能,在电脑敲出来吧!

参考自w3cschools

原文地址:https://www.cnblogs.com/homehtml/p/12533503.html

时间: 2024-08-02 18:57:00

前端实例练习 - 模态框的相关文章

Bootstrap历练实例:模态框(Modal)插件

模态框(Modal)是覆盖在父窗体上的子窗体.通常,其目的是显示来自一个单独源的内容,可以在不离开父窗体的情况下进行一些交互,子窗体提供一些交互或信息. <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Bootstrap历练实例:模态框(Modal)插

前端实例练习 - 模态相册

模态相册 代码储存在Github效果预览 初衷:很多人在初学前端的时候都会问,"如何入门前端?"同为在前端学习道路上,奋力追赶的一员,本人对于目前网络上所能看到的 "入门级" 的教材并不太满意.学习一门新知识,实例是尤其重要的.在这里本人整理了目前页面上常见功能实现的具体实例.愿能为大家提供一些帮助.希望能够与大家互相分享,共同进步. HTML部分 <!-- 图片栏 --> <div class="row"> <di

模态框 modal.js

模态框经过了优化,更加灵活,以弹出对话框的形式出现,具有最小和最实用的功能集. 不支持模态框重叠 千万不要在一个模态框上重叠另一个模态框.要想同时支持多个模态框,需要自己写额外的代码来实现. 模态框的 HTML 代码放置的位置 务必将模态框的 HTML 代码放在文档的最高层级内(也就是说,尽量作为 body 标签的直接子元素),以避免其他组件影响模态框的展现和/或功能. 对于移动设备的附加说明 Due to how HTML5 defines its semantics, the autofoc

Bootstrap 模态框实例插件

好久没有发过自己的代码的状态了,今天编写代码感觉有力不从心了.不过慢慢的找回了感觉,正好朋友问了我一个问题,就是如何实现模态框.其实就是引用bootstrap插件来实现. Bootstrap Modals(模态框)是使用定制的 Jquery 插件创建的.它可以用来创建模态窗口丰富用户体验,或者为用户添加实用功能.您可以在 Modals(模态框)中使用 Popover(弹出框)和 Tooltip(工具提示插件).页面中的模态框一般分为注册模态框.变更模态框.删除(信息提示)模态框三种基本模态框.

Bootstrap 实例 - 模态框(Modal)插件

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Bootstrap 实例 - 模态框(Modal)插件</title> <link rel="stylesheet" href="https://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.m

web前端之模态框的实现

<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no"> <title>模态框

Js实例——模态框弹出层

1.描述 百度登录就是一个模态框弹出层.思路分析:先将灰色大背景和登陆盒子设为不可见,利用JS将其动态加载可见. 2.代码 <!DOCTYPE html> <html> <head> <title>模态框弹出层.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-

Bootstrap 模态框(Modal)带参数传值实例

模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 为了实现父窗体与其的交互,通常需要向其传值,实现带参数的传递,查看数据的唯一性. 例如:订单列表页,点击一个操作按钮,要对相应的订单进行操作,就需要传递该订单相对应的id. 具体写法: <div class="btn btn-primary btn-sm " data-toggle="modal" data-t

js 实例2 实现模态框弹出;

简单实现功能如上: 1,单击按钮,模态框弹出. 2.单击红色的叉号关闭复选框. 思路:先将没有隐藏的属性写好,然后通过js实现新建各种标签以及属性. 具体代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ padding: 0; ma