`

为自己的JS库 moogens 增加 facebox 组件

阅读更多

之前的JS慢慢积累下来慢慢也就自己完善了个,比之前的__init_xu 要减小的多,主要代码仅仅包括如下几个部分:

 

简单去除注释压缩后在 9K左右,基本都全了 呵呵,比如DOM操作

 

 

事件操作:

 

做了个简单UI开发设想... 名字暂定为 mgui,在global.js 中暂时就这些代码:

(function() {

/**
 * MGUI for Moogens is a simple js ui library.
 */
Moogens.UI = {
	meta : {
		author : "kenxu",
		version : "0.01"
	},
	setBathpath: function(uri){
		this.bathpath = uri ;
	}
};

// 自动设置UI库 基本bathpath
var scripts = $TagN("script");
for (var i = 0,pattern = /.*\/mgui\/global.js($|\?.*)/; i < scripts.length; i++) {
	if (pattern.test(scripts[i].src)){
		Moogens.UI.setBathpath(scripts[i].src.replace(/global\.js.*/, ''));
		break;
	}	
}

/**
 * 浏览器的 window 对象 封装器
 */
Moogens.UI.GlobalWindow = {

	getSize : function() {
		return {				
			x: window.innerWidth
					? window.innerWidth
					: (document.compatMode == 'CSS1Compat'
							? document.documentElement.clientWidth
							: (document.body
									? document.body.clientWidth
									: window.undefined))
			,
			y: window.innerHeight
					? window.innerHeight
					: (document.compatMode == 'CSS1Compat'
							? document.documentElement.clientHeight
							: (document.body
									? document.body.clientHeight
									: window.undefined))
		};
	} ,
	
	/**
	 * 获取全高/全宽 == 用于遮罩层
	 */
	getFullSize: function(){
		var size = this.getSize();
		return {
			x: size.x > document.body.scrollWidth ? size.x: document.body.scrollWidth ,
			y: size.y > document.body.scrollHeight ? size.y : document.body.scrollHeight
		} ;
	}

};

})();
 

 

为了支持动画,把 moofx 这个东西进行了 改写....

 

前几天在网上看到 facebox这个东西感觉不错,自己把它改写了下,呵呵 挺简单的 感觉:

 

 

计划是每个目录代表一个组件 ,每个组件的主文件叫做 component.js ,样式文件叫做 style.css 下面有个images文件夹放置图片....

例如 facebox的代码:

 

 

 

 

比如facebox的用法如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="kencore" uri="http://moogens.info/kenjsp/taglib/core"%>

<c:set var="baseURI" value="${applicationScope.frontWebMaster.contextPath}"></c:set>
<!DOCTYPE html>
<html>
    <head>
        <title>后台管理 -- 猪猪阵营(我的小屋)</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">         
        <link rel="stylesheet" type="text/css" media="screen" href="${baseURI}css/app/accounts/style.css">
		<script src="${baseURI}js/moogens.js" type="text/javascript"></script>
		
		<script src="${baseURI}js/mgui/global.js" type="text/javascript"></script>
		<script src="${baseURI}js/mgui/dom-drag.js" type="text/javascript"></script>
		<script src="${baseURI}js/mgui/fx.js" type="text/javascript"></script>
		<script src="${baseURI}js/mgui/facebox/component.js" type="text/javascript"></script>
		<link rel="stylesheet" type="text/css" media="screen" href="${baseURI}js/mgui/facebox/style.css">
		
		<script type="text/javascript">
		Moogens.Dom.onReady(function(){
			var textBox = new Moogens.UI.Facebox({
				title: 'Facebox title',
				width: 500 ,
				message: document.getElementById('xx').innerHTML 
			});
			document.getElementById('textBox').onclick = function(){
				textBox.show();
			};
			
			var imgBox = new Moogens.UI.Facebox({
				title: 'Facebox title',
				width: 500 ,
				submitValue: 'Submit' ,
				submitFunction: function(){alert(document.title);} ,
				url: "http://tech.ccidnet.com/pub/attachment/2005/2/397089.jpg" 
			});
			document.getElementById('imgBox').onclick = function(){
				imgBox.show();
			};			
		});
		</script>
    </head>
    <body>
		<div id='container'>
			
			<div id='header'>
				<ul id="site_nav" class="nav">
					<li><a href="#" class="homepage">首页</a></li>
					<li><a href="#">新闻</a></li>
					<li><a href="#">读书</a></li>
					<li><a href="#">应用</a></li>
					<li><a href="#">问答</a></li>
					<li><a href="#">更多</a></li>
				</ul>
				
				<ul id="user_nav" class="nav">
					<li><a href="#">欢迎 <b>开发者</b></a></li>
					<li><a href="#">收件箱</a></li>
					<li><a href="#">我的应用</a></li>
					<li><a href="#">我的叽歪</a></li>
					<li><a href="#">设置</a></li>
					<li><a href="#">退出</a></li>
				</ul>				
			</div><!-- end #header -->
			<div id='branding'>				
				<div style="width: 800px;height: 80px;font-size: 2.8em;">后台管理</div>				
			</div><!-- end #branding -->
			
			<div id='sidebar'>
				
				<ul>
					<li><a href='${baseURI}admin/application/config.php'>系统设置</a></li>
					<li><a href='${baseURI}admin/user/index.php'>用户管理</a></li>
					<li><a href='${baseURI}admin/appman/index.php'>应用管理</a></li>
					<li><a href='${baseURI}admin/news/index.php'>新闻管理</a></li>
					<li><a href='${baseURI}admin/comments/index.php'>评论管理</a></li>
					<li><a href='${baseURI}admin/attachment/index.php'>附件管理</a></li>
					<li><a href='${baseURI}admin/application/guard.php'>系统维护</a></li>
				</ul>
				
			</div><!-- end #sidebar -->
			
			<div id='mainContent'>
				<div id='contentBox'>
					<jsp:include page="${requestScope.contentPage}"></jsp:include>
					
					<hr />
					<ul>
						<li id="textBox">文字FaceBox</li>
						<li id="imgBox">图片FaceBox</li>
						<li id="ajaxBox">Ajax FaceBox</li>
					</ul>
				</div>
				
				<div id="ajaxload"></div>			
				<br class='clearfloat' />
			</div><!-- end #mainContent -->
			
			<div id='footer'>
				<p>Copyright &copy; 2010 猪猪阵营(我的小屋). All rights reserved.</p>
			</div><!-- end #footer -->
			
				
		</div><!-- end #container -->
		
		<div id="xx" style="display: none;">
		<jsp:include page="about.rhtml"></jsp:include>
		</div>
    </body>
</html>

 

在IE和 firefox测试 没有问题,截图如下:

 

 

Ajax 因为 moogens 里面暂时没有实现 先搁置吧...

 

 

现在 支持 移动和渐变效果 呵呵,和原来的不一样,点击关闭并不是真的关闭,只是隐藏而已,要销毁.需要调用 destroy 方法 呵呵.....

 

还少一个功能 就是 模态 , 这个好实现 明天再来 , 回家了 饿了 大家 明天见了

  • 大小: 26.8 KB
  • 大小: 34.3 KB
  • 大小: 9.1 KB
  • 大小: 7.4 KB
  • 大小: 11.7 KB
  • 大小: 82.8 KB
  • 大小: 65.2 KB
  • 大小: 50.7 KB
3
4
分享到:
评论
2 楼 zozoh 2011-01-18  
哇,色色威武
完全不用 jQuery 哦 
1 楼 vb2005xu 2011-01-18  
女孩对男孩说:“咱们分手吧”。男孩:“为什么?” 女孩:“考试周过了,图书馆的座位没用了”。男生:“可是我有两张软卧的票啊”。女孩:“讨厌,不早说,人家刚刚跟你开玩笑来着~~~”

相关推荐

    使用facebox弹出层

    在本例中,我们有一个名为"facebox.js"的文件,这正是Facebox的核心JavaScript代码。确保在页面的部分引入jQuery和Facebox的CSS文件,然后在标签的底部引入Facebox的JS文件。 ```html &lt;!DOCTYPE html&gt; 使用...

    facebox弹出框

    Facebox是一款基于JavaScript和jQuery库的轻量级插件,用于创建美观的弹出框效果。这个插件允许开发者在网页上优雅地展示各种类型的内容,如图片、HTML片段、AJAX加载的内容等,而无需离开当前页面。Facebox通过CSS3...

    facebox-1.2

    "Facebox-1.2" 是一款在前端开发中广泛使用的JavaScript库,它基于流行的jQuery框架,主要用于创建轻量级的弹出对话框。这款工具以其简洁、灵活和易于定制的特点,深受开发者喜爱。它的核心功能是将网页上的链接或者...

    Facebox核心的网页提示js弹出层特效.rar

    一个js弹出层特效,可用于网页提示框、弹出层、登录框都可以使用,核心使用了Facebox吧,点击上面的文字就可弹出该提示框,可点击“X”号关闭该弹出层,这个层兼容各大浏览器,只是有一点还需要改进,我喜欢可以拖动...

    16个SNS网站常用JS组件

    标题中的“16个SNS网站常用JS组件”指的是在社交网络服务(Social Networking Services)网站开发中常见的JavaScript组件。这些组件通常是用于增强用户交互、美化界面或提供特定功能的代码库。SNS网站通常包括社交...

    facebox_v3_PyTorch_up_0606.zip

    《facebox_v3_PyTorch_up:深度学习面部检测框架优化探析》 在人工智能领域,面部检测是一项至关重要的任务,广泛应用于人脸识别、视频监控、社交媒体等多个场景。PyTorch作为一款流行的深度学习框架,因其灵活性和...

    facebox_div弹出层

    使用Facebox首先需要在项目中引入jQuery库和Facebox的CSS及JS文件。通常,这些文件会通过CDN或者本地文件系统引入到HTML页面的`&lt;head&gt;`标签内。 3. **CSS和HTML结构**: Facebox的HTML结构通常包括一个隐藏的`div...

    jq_facebox实例

    **jQuery Facebox 实例详解** ...接着,下载 Facebox 插件的压缩包,解压后将 `facebox.css` 和 `facebox.js` 文件放入你的项目目录。在页面中通过 `&lt;link&gt;` 和 `&lt;script&gt;` 标签引入这两个文件: ```html ...

    facebox1.2 基于jQuery的控件

    - **链接资源**:在HTML文件中引入jQuery库和facebox.js,以及facebox.css文件。 - **初始化设置**:在文档加载完成后,使用`$.fn.extend({ facebox: function() {} })`进行初始化,并可设置一些选项,如关闭按钮...

    ( caffe-facebox-vs2013.7z )

    压缩包中的"caffe-facebox-vs2013"可能包含以下组件: 1. Caffe源代码:这是深度学习库,用于训练和部署神经网络模型。 2. SSD模型文件:预训练的模型权重,用于人脸检测。 3. 示例数据集:包含人脸图像,用于测试和...

    jQuery Facebox lightbox效果华丽弹出层插件(灰色与蓝色).zip

    只需在页面上引入jQuery库和Facebox的JavaScript及CSS文件,然后使用特定的类名标记要触发弹出层的元素即可。 6. 兼容性:由于基于jQuery,Facebox在主流浏览器上的表现通常都非常稳定,包括Chrome、Firefox、...

    facebox插件

    NULL 博文链接:https://ice-cream.iteye.com/blog/318843

    Js点击放大图片

    Facebox的核心功能是通过CSS和JavaScript为用户提供一个轻量级的模态对话框,当用户点击特定链接时,内容会在一个半透明的背景上全屏显示。在我们的场景中,这个功能被用来在用户点击图片后显示大图。下面我们将详细...

    漂亮的js弹出框

    JavaScript(简称JS)是一种轻量级的编程语言,广泛用于网页和网络应用的开发,尤其在用户交互方面表现得非常出色。"漂亮的js弹出框"是一个关于利用JavaScript实现美观弹出框的资源,它提供了两种不同的展示方式:...

    JavaScript_jQuery内置的facebook风格灯箱.zip

    - `js/` 目录包含JavaScript代码,如`facebox.js`可能是灯箱的核心实现。 - `css/` 目录包含CSS样式文件,如`facebox.css`用于定义灯箱的外观。 - `images/` 可能包含必要的图片资源,如箭头、关闭按钮等图标。 - `...

    Facebox 基于jQuery的华丽弹出层插件

    内容索引:脚本资源,jQuery,facebox Facebox 基于jQuery的一款带动画特效的华丽弹出层插件,当然华丽还是需要你去实现的,它只提供一些方法和效果,比如渐入渐出显示层,折叠展开等,本例这个不很华丽,只是为了测试...

    编程开发-综合控件-jquery.qqFace.js.zip

    《jQuery.qqFace.js:一...开发者只需要在页面中引入jQuery库和jQuery.qqFace.js插件的脚本文件,然后通过简单的JavaScript代码调用插件并配置相关参数,即可实现表情功能。例如: ```html &lt;script src="jquery.js"&gt; ...

    FacyBox是一个基于jQuery实现FacebookFancybox风格的lightbox控件

    这些文件通常可以在下载的压缩包`facebox-master`中找到,包括`facebox.css`用于样式定义,以及`facebox.js`或`facebox.min.js`(压缩版)用于JavaScript逻辑。同时,别忘了在HTML文档头部添加对jQuery库的引用,...

    使用DeepStack,CompreFace或Facebox进行面部识别的统一API,用于处理和训练图像。-JavaScript开发

    Double Take Unified API可使用DeepStack,CompreFace或Facebox进行人脸识别,以处理和训练图像。 用例Frigate订阅Double Take Unified API,可通过DeepStack,CompreFace或Facebox来处理和训练图像以进行面部识别。...

Global site tag (gtag.js) - Google Analytics