常见的弹窗技术

在这里总结两种弹窗技术,以供学习或复习:BootStrap Modal模态框和Custombox

1.BootStrap Modal模态框

  • 介绍

模态框(Modal)是覆盖在父窗体上的子窗体。通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动。子窗体可提供信息、交互等。如果想要单独引用该插件的功能,那么您需要引用 modal.js。或者,正如 Bootstrap 插件概览 一章中所提到,您可以引用 bootstrap.js 或压缩版的 bootstrap.min.js。

  • 用法

使用模态窗口,通常需要某种触发器来触发Modal事件,比如按钮或标签。在下面的实例中,我们使用的是按钮来触发事件。分别用三种方法实现:

  • 实例
  1. 直接打开模态窗口实例:
<div class="content">
        <h2>创建模态框(Modal)h2>
        
        <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">开始演示模态框button>
        
        <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">

                        <h4 class="modal-title" id="myModalLabel">模态框(Modal)标题h4>
                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×button>
                    div>
                    <div class="modal-body">在这里添加一些文本div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">关闭button>
                        <button type="button" class="btn btn-primary">提交更改button>
                    div>
                div>
            div>
        div>
    div>

代码讲解:

  • 如果您仔细查看上面的代码,您会发现在 标签中,data-target="#myModal" 是您想要在页面上加载的模态框的目标。您可以在页面上创建多个模态框,然后为每个模态框创建不同的触发器。现在,很明显,您不能在同一时间加载多个模块,但您可以在页面上创建多个在不同时间进行加载。
  • 在模态框中需要注意两点:
    1. 第一是 .modal,用来把
      的内容识别为模态框。
    2. 第二是 .fade class。当模态框被切换时,它会引起内容淡入淡出。
  • aria-labelledby=“myModalLabel”,该属性引用模态框的标题。
  • 属性 aria-hidden=“true” 用于保持模态窗口不可见,直到触发器被触发为止(比如点击在相关的按钮上)。
  • class=“close”,close 是一个 CSS class,用于为模态窗口的关闭按钮设置样式。
  • data-dismiss=“modal”,是一个自定义的 HTML5 data 属性。在这里它被用于关闭模态窗口。
  • class=“modal-body”,是 Bootstrap CSS 的一个 CSS class,用于为模态窗口的主体设置样式。
  • class=“modal-footer”,是 Bootstrap CSS 的一个 CSS class,用于为模态窗口的底部设置样式。
  • data-toggle=“modal”,HTML5 自定义的 data 属性 data-toggle 用于打开模态窗口。

以上参考菜鸟教程
2. 使用JS手动打开模态窗口

<button class="btn btn-primary btn-lg" onclick="jsOpenModal()">
            js打开模态框1
        button>
        <br>
        <br>
        <button class="btn btn-primary btn-lg" onclick="jsOpenModal2()">
            js打开模态框2
        button>

js代码:


模态窗口2代码:

2.Custombox

  • 介绍

Custombox同样是一个弹窗插件,使用JavaScript和CSS 3实现,配置简单,动画效果丰富,兼容多种终端,因此也可以作为弹窗整合的选择。

Custombox官网

  • 用法

官网中提供了Custombox的下载文件,各种demo展示,和一些参数简介以及使用方法。

  • 参数
// Instantiate new modal
new Custombox.modal({
  // Options
  content = {
    target: null,   //设置弹窗的URL,ID或者Class
    effect: 'fadein',   //设置效果,这里是渐进渐出,其他效果官网也有展示
    id: null,   //设置ID
    container: null, //设置页面元素容器的元素(ID或Class),如果它不存在,将根据效果自动创建。   
    close: true, // 是否允许使用esc键关闭弹窗 默认true
    clone: false,   //克隆DOM的元素。
    animateFrom: 'top', // 动画出现位置 top、left、center、right
    animateTo: 'top',//动画消失位置 top、left、center、right
    positionX: 'center',//横坐标位置 top、left、center、right
    positionY: 'center',//纵坐标位置 top、left、center、right
    width: null,//宽度
    speedIn: 300,//进入速度,以毫秒为单位
    speedOut: 300,//消失速度,以毫秒为单位
    delay: 150,//动画延迟,以毫秒为单位
    fullscreen: false,//设置全屏模式,默认false
    onOpen: null, //钩子函数,弹窗打开时触发
    onComplete: null,//钩子函数,弹窗加载完成时触发
    onClose: null,//钩子函数,弹窗关闭时触发
  }
});

其中 target 参数、effect 参数是较为常用的参数,它们用来定义 Custombox 对象打开哪个弹框,以及使用什么效果打开。其他参数都是辅助参数,可根据所需的动画效果进行选择。

另外三个比较重要的参数是onOpen 、onComplete 、onClose,分别定义了弹窗打开时触发事件、弹窗加载完成时触发事件、弹窗关闭时触发事件,如果弹框交互复杂,这三个钩子函数可以帮上大忙。

  • 实例

使用Custombox实现上面Modal实现的功能





通过按钮触发弹窗打开事件

function custombox1() {
        var custombox1 = new Custombox.modal({
            content: {
                effect: 'fadein',
                target: '#custombox1'
            }
        });
        custombox1.open();
    }

先写到这里,本文代码都在这里

你可能感兴趣的:(Java,Web,BootStrap,Custombox)