代码改变世界

jquery 模式对话框终极版

2009-09-28 16:17  zhaoyang  阅读(13071)  评论(52编辑  收藏  举报
     今天终于有时间把我以前写的一个jQuery插件进行整理,改进。这是一个模拟“模式对话框”的插件,该模式对话框共有三种皮肤,红、绿、蓝。页面滚动时随着滚动条固定在屏幕的中央,模式对话框中的内容为两种,一是iframe引入,一是HTML语句插入。在网站开发中十分常用,使用该插件十分的简单。来看一下运行效果。


图1红色界面


图2绿色界面

图3蓝色界面
插件使用
1、首先引入样式文件,详细代码如下所示:
      <link href="images/blue/css.css" rel="stylesheet" type="text/css" id="showdialogcss" />
      着里面的id一定不要忘记,他是用于切换插件皮肤的。
2、接着引入jQuery的js文件,具体代码如下:
      <script src="js/jquery.js"></script>
3、最后引入模式对话框插件,具体代码如下:
      <script src="js/dialog.js"></script>
4、编写用于点击的HTML代码,具体代码如下:
      <div id="diagx">单击我--模式对话框</div>
5、编写JavaScript代码,为id为“diagx”的div绑定单击模式对话框,具体代码如下所示
      <script type="text/javascript">
            $(document).ready(function(){
            $('#diagx').ShowDialog({
           Width:"500",                                                //模式对话框宽度500px
           Height:"300",                                                //模式对话框300px
           Title:"模式对话框",                                          //模式对话框上的标题
           skin:"blue",                                                  //模式对话框皮肤样式  共有三种 1、blue;2、red;3、geen。
           FrameURL:"http://www.baidu.com/",               //iframe连接地址 当ContentFlag等于0时才起作用
           ContentFlag:"0",                                           //模式对话框显示iframe还是HTML内容标示 0是iframe;1是HTML内容
           Contents:"<div>测试数据</div>"                    //模式对话框中显示的HTML内容
           });
      });
      </script>
      该插件的默认参数还有Intopacity表示模式对话背景(就是整个页面遮罩层)的透明度默认值为“0.2”。整个例子的全部HTML代码如下所示:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="images/blue/css.css" rel="stylesheet" type="text/css" id="showdialogcss" />
<script src="js/jquery.js"></script>
<script src="js/dialog.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#diagx').ShowDialog({
     Width:"500",
     Height:"300",
     Title:"模式对话框",
     skin:"blue",
     FrameURL:"http://www.baidu.com/",
     ContentFlag:"0",
     Contents:"<div>测试数据</div>"
     });
});
</script>
<title>模式对话框</title>
</head>
<body>
<div id="diagx">单击我--模式对话框</div>
</body>
</html>
该代码运行时,如果我们单击id为“diagx”的div层将弹出模式对话框。
插件的源代码可以在如下下载,欢迎大家下载使用,和改进,改进后不要忘记通知我一下,我也提高一下。谢谢。下载
/Files/studyplay/diag.rar

      看到了大家的评论,一部分朋友希望给对话框添加拖动效果,不知道这种效果有什么意义啊,因为我的div层是居中对齐的 滚动条滚动自动就会居中。有必要实现拖动效果吗?我觉得添加一个随窗口变化而居中的效果比较实用。不过我还是修改了另一个版本有拖动效果的版本。下载
窗口大小调整时,对话框的位置调整正在开发中...

      根据网友们的意见进行了第三次修改,本次修改主要完善窗口大小改变时调整遮罩层的大小,以便完整覆盖页面;调整对话框的位置始终在页面中间。
      添加两个参数IsDrag:表示是否允许拖动0不允许(默认值),1表示允许;IsAutoCenter:表示滚动条移动时是否始终保持在页面中心,0表示不保持,1表示保持。这样就可以根据不同的用户需求进行相应设置。下载请点击

 2009-9-30 再次修改 解决拖动遮罩层覆盖不全问题如下图   遗留问题div快速拖动时cpu占有率高问题???高手帮忙
点击下载

------------------------------------------------------
解决问题:边框内部分透明看见底色


遗留问题:还是效率问题 ,你不停的快速拖动 一会儿cpu会很高  -------------希望朋友们解决 邮箱:zhaoyang314@163.com msn:zhaoyang314@pbo365.yahoo.com.cn
/Files/studyplay/diag4.rar
 
又修改一次 ,添加淡入淡出效果,具体使用见文件中的样例。/Files/studyplay/diag5.rar