之前项目中用到的简单的自定义弹出提示框的实现,整理整理,当然开源的插件很多,但自己写的可以随意发挥

效果如下:

html代码:

<div class="container">
            <div class="wrapper" style="background-color:white; position:relative;">
                <div class="box" style="background-color:red; position:absolute; left:100px; top:300px; width:100px;height:100px;">click on me!</div>
            </div>
        </div>

CSS代码:

#contentPopup
    {
        position: absolute;
        display: none;
        z-index:10;
    }
    #contentPopup
    {
        width:336px;

    }
    #contentPopup img
    {float:left;
     margin-left:110px;
    }
    #contentPopup .popupcontent
    {
        background-color:#dddfe6;
        color:#192e59;
        font-weight:bold;
        font-size:16px;
        width:300px;
        float:left;
        padding:16px;
        border-top-right-radius:10px;

    }
     #contentPopup .close
    {
        left:190px;
        top:2px;
        position:absolute;
        cursor:pointer;
    }
    .itemOver
    {
        color:#ffcb05;
    }

Js/Jquery代码如下:

function stopEvent() {
                if (window.event)
                    event.cancelBubble = true;
                else
                    e.stopPropagation();
            }
            (function () {
                jQuery(document).ready(function ($) {
                    $("body").append(‘<div id="contentPopup" class="popup"><img class="close" src="img/x.png"/><div class="popupcontent"></div><img src="img/pop-up-arrow-down.png" /></div>‘);

                    $(".box").on("click", function (e) {
                        hidePopup();
                        applyBackground();
                        showPopup(e);
                    });
                    $(".close").on("click", function (e) {
                        hidePopup();
                    });
                });
                function applyBackground() {
                    if ($("#bg").length == 0) {
                        $("body").append(‘<div id="bg" class="popup" style="display:none;z-index:9;position:absolute;filter:alpha(opacity = 30);opacity:0.3;" onclick="hidePopup();"></div>‘);
                        $("#bg").height($(document).height()).width($(document).width()).css({ "left": "0px", "top": "0px" });
                    }
                    $("#bg").show();
                }
                function showPopup(e) {
                    var src = e.target ? e.target : e.srcElement;
                    if (!$(src).hasClass("box")) return;
                    $(src).addClass("itemOver");
                    var pos = $(src).offset();
                    $("#contentPopup").children("div").html("Please add your popup content here!");
                    $("#contentPopup").css({ "left": (pos.left - 70) + "px", "top": (pos.top - $("#contentPopup").height()) + "px" });
                    $("#contentPopup").show();
                }
                function hidePopup() {
                    $(".popup").hide();

                }
            }());

实现原理比较简单,预先把popup的内容绝对定位并设z-index为顶层,加载入body先隐藏,点击后就获取点击的节点元素位置按相应的位置show出来,要注意设置事件冒泡(stopEvent()),因为很可能你对box绑定了多层点击函数。

之前项目中用到的简单的自定义弹出提示框的实现,整理整理,当然开源的插件很多,但自己写的可以随意发挥

时间: 2024-10-13 11:16:14

之前项目中用到的简单的自定义弹出提示框的实现,整理整理,当然开源的插件很多,但自己写的可以随意发挥的相关文章

基于Jquery 简单实用的弹出提示框

引言: 原生的 alert 样子看起来很粗暴,网上也有一大堆相关的插件,但是基本上都是大而全,仅仅几句话可以实现的东西,可能要引入好几十k的文件,所以话了点时间自己写了个弹出效果,放到项目上去发现效果还不错,这里贴出来,做个备忘,有需要的同学可以拿去,也可以作为一个参考. 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.d

IOS自定义弹出提示框

采用代理的设计思想. 1,创建一个视图类.h #import <UIKit/UIKit.h> @protocol CustomaltviewDelegate; @protocol CustomaltviewDelegate <NSObject> - (void)alertview:(id)altview clickbuttonIndex:(NSInteger)index; @end @interface Customaltview : UIView<Customaltview

iOS开发项目篇—14点击标题按钮弹出菜单

iOS开发项目篇—14点击标题按钮弹出菜单 一.简单说明 (1)简单实现 点击标题按钮弹框,在箭头向上的时候,显示标题菜单 把ImageView添加到谁的身上?三角形的箭头在导航栏上,因此不能添加到tableview上. 分析图示: 有两个两种方法可以考虑: (1)添加到导航控制器上,因为导航栏是在导航控制器上的. (2)不用考虑控制器,直接添加到窗口上. 拿到窗口 (1)self.view.window这个属性谨慎使用,当开始加载的时候,为空 (2)获取主窗口  [UIApplication

JavaWeb项目导出Excel文件并弹出下载框

引言 在Java Web开发中经常涉及到报表,最近做的项目中需要实现将数据库中的数据显示为表格,并且实现导出为Excel文件的功能. 相关jar包 使用POI可以很好的解决Excel的导入和导出的问题,POI下载地址: poi-3.6-20091214.jar 关键代码 首先导入上述jar包. 在生成excel时一般数据源形式为一个List,下面把生成Excel格式的代码贴出来: /** * 以下为生成Excel操作 */ // 1.创建一个workbook,对应一个Excel文件 HSSFWo

datatables.js 简单使用--弹出编辑框或添加数据框

内容:选中某一条记录,弹出编辑框 环境:asp.net mvc ,  bootstrap 显示效果: 代码: 至于怎么弄多选框,在上一篇博客里已经有说明. 主要用到了bootstrap的模态窗,下面代码是从网上找的,主要分3部分,标题header,内容body和底部footer 1 <div class="modal fade" id="myModal" tabindex="-1" role="dialog" 2 ari

CSS3/jQuery自定义弹出窗口

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>index.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv

读《深入理解Windows Phone 8.1 UI控件编程》1.4.3 框架的应用示例:自定义弹出窗口有感

前些天买了园子里林政老师的两本 WP8.1 的书籍.毕竟想要学得深入的话,还是得弄本书跟着前辈走的. 今天读到 1.4.3 节——框架的应用示例:自定义弹出窗口这一小节.总的来说,就是弄一个像 MessageDialog 的,但是又要具有能定义 Dialog 内的按钮.文本等等的功能(例如颜色.字体大小这些).(先不说 ContentDialog ,即内容对话框能大部分做到) 原理是使用了一个 Popup 控件作为弹出窗口的容器,将 Popup 的 Child 属性赋值为弹出窗口的实例.在书中,

鼠标拖动 自定义弹出框

/*设置自定义弹出框可移动*/jQuery(document).ready( function () { $('.popmodal .popheader').mousedown( function (event) { var isMove = true; var abs_x = event.pageX - $(this).offset().left; var abs_y = event.pageY - $(this).offset().top; $(document).mousemove(fun

Validform自定义提示效果-使用自定义弹出框

$(function(){ $.Tipmsg.r=null; $("#add").Validform({ tiptype:function(msg){ layer.msg(msg); } }); }) Validform自定义提示效果-使用自定义弹出框