现在的位置: 首页 > 综合 > 正文

自定义弹出框控件

2013年10月08日 ⁄ 综合 ⁄ 共 4355字 ⁄ 字号 评论关闭

由于页面设计的需要,要自定义一个弹出框用来写帮助文档,所以自己就写了一个小控件,如下:

页面代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>测试小帮手</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<link rel="stylesheet" type="text/css" href="css/ui-lightness/jquery-ui-1.8.16.custom.css">
	<script type="text/javascript" src="js/jquery-1.6.4.min.js"></script>
	<script type="text/javascript" src="js/jquery.help.js"></script>
  </head>
  <script type="text/javascript">
  		$(document).ready(function(){
  			$("#alerm").help("123213213213213213");
  		})
  </script>
  <body>
    	<div id="alerm" style="background: url('images/btn_assistant.jpg');width: 100px;height: 28px;cursor: pointer;"></div>
  </body>
</html>

CSS代码如下:

/*
 * jQuery UI help 1.0.0
 *
 * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Progressbar#theming
 */
.ui-help-help_pop{width:490px;height:400px;border:solid 1px #b5b5b5;position:absolute;overflow:hidden;display: none;}
.ui-help-help_pop #help_title{ background:url(images/ui-bg_gloss-wave_35_f6a828_1x40.png) repeat-x;height:40px;line-height:40px;font-size: 100%;font-weight: normal;text-align: center;padding:0;margin:0;}
.ui-help-close_helpBtn{ float:right;margin:10px;background: url(images/ui-btn-ass-close.png) repeat-x;width: 23px;height: 23px;display: inline;}
.ui-help-help_content{ width:478px;height:350px;margin-left:5px;font:normal 14px "宋体";color:#040404;line-height:22px;overflow-y: auto;padding:0;overflow-x:hidden;}
.ui-help-help_content p{ margin-left:14px;}
.ui-help-help_content h3{ font-weight:bold;line-height:36px;}
.ui-help-help_content img{ margin:8px 0}

控件代码即jquery.help.js代码如下:

/*
 * jquery.help.
 *
 * Copyright (c) 2012 by roger
 *
 * Launch  : March 2012
 * Version : 1.0.0
 * Released: March 13th, 2012 - 15:00
 * Debug: jquery.help.js
 */
 (function(f) {
	 
	 
	 /**
	  *
	  * @example  $("#example").help("string");
	  * @desc  可以直接传字符串进去
	  *
	  * @example  $("#example").help({top:100,left:100,background:"#fff",color:"#000",fontSize:12,context:"string",opacity:50});
	  * @desc  通过不同的参数控制输入文本的样式,top和left控制层在浏览器中的位置,background控制文本显示区域的背景色,color控制字体的颜色,fontSize控制字体的大小,context是文本的内容,opacity是弹出框背景透明度
	  *
	  * @example  $("#example").help({url:"http://www.baidu.com"});
	  * @desc 也可以传一个URL,该页面将显示链接的页面
	  *
	  *	  * @example  $("#example").help(style:"S2X");
	  * @desc 窗口显示特效,目前仅支持Z2Y左右滑出,S2X上下滑出,和XZH斜向逐步显示
	  */
	 
	 
	f.fn.help = function(options){
		var context = "";
		opts = jQuery.extend({
			top : 10,
			left : function(){
				var reLeft = 0;
				if($(document.body).width()>490){
					reLeft = $(document.body).width()/2 - 245;
				}
				return reLeft;
			},
			background:"#fff",
			color:"#000",
			fontSize:12,
			url:"",
			opacity:10
		},options || {});
		
		if(typeof options=="object"){
			context = opts.context;
		}else if(typeof options=="string"){
			context = options;
		}
		if(opts.url != ""){
			context = "<iframe align='top' frameborder='0'  width='100%' style='overflow-x:hidden;overflow-y:auto;' height='100%'  src='"+opts.url+"'>无法加载iframe</iframe>";
		}
		var divElement = new Array();
		divElement.push("<div id='floatBoxBg' style='display:none;width:100%;height:100%;background-color:#000;filter:alpha(opacity="+opts.opacity+");opacity:"+(opts.opacity/100)+";position:absolute;top:0;left:0;'></div>");
		divElement.push("<div id='help_pop'>");
		divElement.push("<h2><a href='javascript:void(0)' id='close_helpBtn'></a>小帮手</h2>");
		divElement.push("<div id='help_content'>"+context+"</div>");
		divElement.push("</div>");
		$(document.body).append(divElement.join(""));
		$("#help_pop").addClass("ui-help-help_pop");
		$("#close_helpBtn").addClass("ui-help-close_helpBtn").click(function(){
				$("#help_pop").animate(f.fn.help.style[opts.style ||"XZH"],function(){$("#floatBoxBg").hide();});
				
		});
		$("#help_content").addClass("ui-help-help_content");
		
		$(this).click(function(){
			$("#help_pop").animate(f.fn.help.style[opts.style ||"XZH"],"normal").css({top:opts.top,left:opts.left,background:opts.background});
			$("#help_content").css({'color':opts.color,'font-size':opts.fontSize+'px'});
			$("#floatBoxBg").show();
		})
	}
	/*窗口显示特效,目前仅支持Z2Y左右滑出,S2X上下滑出,和XZH斜向逐步显示*/
	f.fn.help.style={
		S2X:{height: 'toggle'},
		Z2Y:{width:'toggle'},
		XZH:{ height: 'toggle',width:'toggle'}
	}


	
})(jQuery);

抱歉!评论已关闭.