用JqueryUI的Dialog+IFrame实现仿模态窗口效果

  大家有没有想过这样一个问题,当我点击某个图片的时候,我想弹出这个图片信息的详情并修改,于是你首先想到的是不是window.open?window.open方法确实可以,但是有它的局限性,比如,标题显示为URL,点一下其他地方窗口会消失,然后点其他图片的时候,死活都出不来,原来是前面打开的窗口没被关闭,ETC....于是你又想到了模态窗口,但是模态窗口有一个不好的地方,只能适用于IE浏览器,而且样式貌似也不咋地。好啦,天空一声巨响,JqueryUI的Dialog横空出世了,我们先看看官方给的例子。http://jqueryui.com/dialog/ 官方给的例子其实已经说明了一切,而且样式很好看。不过这里面是没有内嵌IFRAME的,所以我们还要有一些事情要做,先来看看成品的效果吧。点击某一张图片,出现如下的对话框。下面的是点击前的效果,每一张图片都有一个ID,这个ID是存放在数据库中的ID,一个ID对应一张图片。

下面的是弹出后的效果。

  其实这是DIALOG内嵌了一个IFRAME,原理还是非常简单的。大家可以注意到,我前面用的是window.open方法,只是注释掉了而已。关于具体的用法,下面的注释已经写得很清楚了。

 //鼠标移上去展示边框
    function onHover()
    {
        ////鼠标滑过
        $(".imgBorder").hover(function () {
            $(this).attr("style", "border:2px solid red")
        });

        //鼠标滑出
        $(".imgBorder").mouseout(function () {

            $(this).attr("style", "border:0px solid red")
        });

        $(".imgBorder").click(function () {

            $("#<%=hid_Product.ClientID%>").val($(this).attr("id")); //把ID赋入隐藏域
            //alert($("#<%=hid_Product.ClientID%>").val());
           // window.open("ProductDetails.aspx?id=" + $(this).attr("id"), "产品修改界面", ‘height=300,width=500,top=200,left=200,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no‘);
            // ShowIframe("修改信息", "http://www.baidu.com", 500, 300);
            $("#<%=hid_id.ClientID%>").val($(this).attr("id"));

            $("#prodcutDetailSrc").attr("src","ProductDetails.aspx?id=" + $(this).attr("id")); //设置IFRAME的SRC;
            $("#dialog").dialog({
                bgiframe: true,
                resizable: true, //是否可以重置大小
                height: 283, //高度
                width: 626, //宽度
                draggable: false, //是否可以拖动。
                title: "公司产品编辑",
                modal: true,
                open: function (e) {  //打开的时候触发的事件

                    document.body.style.overflow = "hidden"; //隐藏滚动条

                },
                close: function () { //关闭Dialog时候触发的事件
                    document.body.style.overflow = "visible";  //显示滚动条
                    Test();
                }

            });
           // window.showModalDialog("ProductDetails.aspx?id=" + $(this).attr("id"),"", "dialogWidth=500px;dialogHeight=200px");
        });

    }

既然是一个IFRAME,那么外面肯定还要嵌套一层DIV,而这一层的DIV默认是隐藏的。

<div style="display:none;overflow:hidden;padding:3px" id="dialog"><iframe frameborder="no" border="0" marginwidth="0" marginheight="0" id="prodcutDetailSrc"  scrolling="no"  width="100%" height="100%"></iframe></div>

关于弹出页的样式,大家自己发挥想象空间吧~~~

另外,这篇文章我个人认为不是什么很水的文章,因为我看过一些其他的同类型的DIV仿模态窗口的,但是感觉都没讲到点子上,我希望这篇文章对大家有所帮助吧。

时间: 2024-08-26 01:00:39

用JqueryUI的Dialog+IFrame实现仿模态窗口效果的相关文章

使用jQuery创建模态窗口登陆效果

来源:GBin1.com 在线下载 在线演示 隐藏模态窗口技术是一种很好的解决方案,用于处理不是特有必要出现在网页上的界面元素.社交网络可以使用模态窗口传达私人讯息以及只针对会员才能看 到的表单.在博客和杂志网站也适用于与主网站分开的作者登陆页面,模态窗口比在JavaScript中创建新窗口更容易,因为使用HTML标记显示,所有 的东西能都呈现在同一个窗口中. 我将演示如何利用jQuery插件leanModal建立一个常规模态窗口.如果你有MIT general license,那么这个插件是完

BootStrap入门教程 (四) :JQuery类库插件(模态窗口,滚动监控,标签效果,提示效果,“泡芙”效果,警告区域,折叠效果,旋转木马,输入提示)

上讲回顾:Bootstrap组件丰富同时具有良好可扩展性,能够很好地应用在生产环境.这些组件包括按钮(Button),导航(Navigation),缩略图( thumbnails),提醒(Alert),进度条(progress bar)等,能够很好减少前端工程师的代码量,实现更加丰富充实的页面. Bootstrap作为一套良好的前端工具,要实现现代的动态页面效果,javascript插件是必不可少的.它提供了12个基于JQuery类库的插件,包括模态窗口(Modals),滚动监控(Scrolls

使用jQueryUI的dialog实现一个提示功能

信息提示给用户是程序开发中,最常用的一个功能. Insus.NET使用jQueryUI的dialog来实现一个,可以定义标题,对话框的大小等. 在ASP.NET MVC环境下来演示吧. 在October控制器创建两个Action操作,一个是为视图DialogDemo,一个是处理数据ProcessData: 现在来写jQuery代码: 使用 $(this).attr("value") 获取铵钮本身的文本值,并传给控制器内的ProcessData操作. 实时运行看看效果:

MSCRM2013模拟模态窗口

由于Chrome不支持showModelDialog,若在Chrome中使用MSCRM2013,则无法使用模态窗口. 以下代码是参考MSCRM中分派.共享等功能的窗口,实现的模拟showModelDialog效果. 可将以下JS作为资源导入CRM: if (typeof (XJS) != "undefined") { alert("自定义JS冲突,未正常载入!"); } else { XJS = { //创建模拟对话框 _CreateModalDialog: fun

Android应用Activity、Dialog、PopWindow、Toast窗口添加机制及源码分析

1  背景 之所以写这一篇博客的原因是因为之前有写过一篇<Android应用setContentView与LayoutInflater加载解析机制源码分析>, 然后有人在文章下面评论和微博私信中问我关于Android应用Activity.Dialog.PopWindow加载显示机制是咋回事,所以我就写一 篇文章来分析分析吧(本文以Android5.1.1 (API 22)源码为基础分析),以便大家在应用层开发时不再迷糊. PS一句:不仅有人微博私信我这个问题,还有人问博客插图这些是用啥画的,这

原生wcPop.js消息提示框(移动端)、内含仿微信弹窗效果

wcPop.js移动端消息对话框插件是之前的wxPop.js的升级版,优化了js和css,并且新增了仿微信弹窗效果, 是一款含有多种情景模式的原生模态消息对话框代码,可用于替代浏览器默认的alert弹出对话框,它提供各种参数和方法,功能非常强大.目前已经在项目中有应用到xwpop开发实例. 调用js库<script src="js/jquery-2.1.1.min.js"></script><script src="wcPop/wcPop.js&

模态对话框与非模态窗口

模态对话框就是在没有关闭它之前,不能再与同一个应用程序的其他窗口进行交互,比如新建项目时弹出的对话框. #include "dialog.h" #include "ui_dialog.h" Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); QDialog dialog; dialog.setWindowTitle("模态

分享20个华丽的模态窗口弹出效果示例(梦想天空)

分享20个华丽的模态窗口弹出效果示例 在你的品牌和网站访问者之间建立情感联系是非常重要的.模态弹出窗口可能会帮助您完成这个具有挑战性的任务,以及分享给游客一些重要信息.作为一项常用规则,模态弹出窗口被用于各种号召行动的消息,如鼓励用户订阅新闻邮件,下载一些免费赠品或通知关于一些新的产品,服务或功能发布等.在这里,你会看到值得你注意的20个华丽的弹出窗口示例. 您可能感兴趣的相关文章 经典网页设计:超炫动画效果单页网站 30个独具匠心的精美单页网站设计案例 25个以全屏照片为背景的精美网页作品 2

Ionic最佳实践-使用模态窗口modal

原文地址:Ionic最佳实践-使用模态窗口modal 模态窗口的结构 在Ionic中,模态窗口通过$ionicModal提供.他易于使用且非常强大,详细信息请参考$ionicModal文档.Ionic中的模态窗口可以使用模板字符串或URL创建.本文将使用URL. 模态窗口创建时绑定到一个scope,这个scope可以用来传递数据.然而,在更复杂的情况下,通过服务来访问共享数据是最好的做法. 制作模态窗口的标记 创建模态窗口非常简单.首先,让我们来创建我们的用户界面.这个小例子将会展示一条联系人信