`

JS UI自己搞2 -- 构建简单的UI组件

阅读更多

这里贴出修改后的JS代码,其它的代码见 第一节内容.

 

新增了 动态创建HTML元素的功能,动态对其赋CSS属性的功能. 新增一个helloworld的例子: 尚未完成.

 

现在有事 暂贴这些代码.

 

对第一节中html文件的修改处为 <body id='body'>,新增了一个id属性

 

Object.extend = function(distObject, souceObject) {
	for (var property in souceObject) {
		distObject[property] = souceObject[property];
	}
	return distObject;
}

//定义全局对象
if(typeof BJExtreme == 'undefined')
	BJExtreme =  function(){} ;

BJExtreme.log = nitobi.Debug.log ;

/*自定义的Dom*/
BJExtreme.Dom = {} ;

BJExtreme.Dom.$ = function(id){
	return document.getElementById(id);
}
BJExtreme.Dom.$name = function(name){
	return document.getElementsByTagName(name);
}
/**
 * 创建HTML元素,并连接到父元素中
 * @param {} elehtml
 * @param {} id
 * @param {} parentid
 */
BJExtreme.Dom.$c = function(elehtml,id,parentid){
	var ele = document.createElement(elehtml);
	ele.setAttribute('id',id);
	BJExtreme.Dom.$(parentid).appendChild(ele);
	ele = null ;
}


/**
 * 元素效果渲染功能区域
 * @type {}
 */
BJExtreme.EleHtml = {} ;

/**
 * 对指定id元素,冲入CSS元素,要注意的是在css属性出现连字符时
 * 将后面的首字母改为大写,并且去掉连字符. 例如:
 * margin-top 写成 marginTop
 * 
 * @param {} id
 * @param {} cssobj
 */
BJExtreme.EleHtml.css = function(id,cssobj){
	//HTML元素的style属性是个数组
	for (var property in cssobj) {
		BJExtreme.Dom.$(id).style[property] = cssobj[property];
	}
}


/**
 * 隐藏和显示HTML元素
 * @param {} id
 */
BJExtreme.EleHtml.hide = function(id){
	BJExtreme.EleHtml.css(id,{display:'none'});
}
BJExtreme.EleHtml.show = function(id){
	BJExtreme.EleHtml.css(id,{display:''});
}

BJExtreme.EleHtml.text = function(id,text){
	if ( text == undefined||text == '')
		return BJExtreme.Dom.$(id).innerText;
	BJExtreme.Dom.$(id).innerText = text;
}

BJExtreme.EleHtml.html = function(id,html){
	if ( html == undefined||html == '')
		return BJExtreme.Dom.$(id).innerHTML;
	BJExtreme.Dom.$(id).innerHTML = html;
}
/**
 * 设置HTML元素的宽高
 * @param {} id
 * @param {} width
 * @param {} height
 */
BJExtreme.EleHtml.setW$H = function(id,w,h){
	BJExtreme.EleHtml.css(id,{width:w,height:h});
}

/**
 * 仅对 position: absolute;的元素有效
 * 
 * 对于使用JS操作CSS时,如果使用的属性有连字符,后面那个大写
 * margin-top 写出 marginTop 
 * @param {} id
 */
BJExtreme.EleHtml.setAbsoluteCenter = function(id){
	var sfid = BJExtreme.Dom.$(id);
	BJExtreme.EleHtml.css(id,{
		position:'absolute',
		top:'50%',
		left: '50%',
		marginTop: (-(sfid.clientHeight / 2)) + 'px' ,
		marginLeft: (-(sfid.clientWidth / 2)) + 'px'
	});
	sfid = null ;
}


//UI控件区域
BJExtreme.WebUI = {} ;

BJExtreme.WebUI.popHelloWorld = function(){
	BJExtreme.Dom.$c('div','helloworld','body');
	BJExtreme.EleHtml.css('helloworld',{
		width:"400px",height:"200px",backgroundColor: 'pink'		
	});
	BJExtreme.EleHtml.setAbsoluteCenter('helloworld');
	
	
	BJExtreme.EleHtml.text('helloworld','你好,世界');
	
	
}
BJExtreme.WebUI.popHelloWorld();

//Test -- 区域
BJExtreme.Test = {} ;

BJExtreme.Test.$c = function(){
	BJExtreme.Dom.$c('p','exap','container');
	BJExtreme.EleHtml.html('exap','大家好啊');
}

BJExtreme.Test.show = function(){
	BJExtreme.EleHtml.show('container');
}
BJExtreme.Test.hide = function(){
	BJExtreme.EleHtml.hide('container');
}
BJExtreme.Test.setAbsoluteCenter = function(){
	BJExtreme.EleHtml.setW$H('container1',"200px","600px")
	BJExtreme.EleHtml.setAbsoluteCenter('container1');
}

BJExtreme.Test.$c();
BJExtreme.Test.hide();
BJExtreme.Test.show();

BJExtreme.Test.setAbsoluteCenter();

 

 

  • 大小: 36.6 KB
  • 大小: 19.1 KB
分享到:
评论
8 楼 vb2005xu 2009-03-24  
DIV 左右图片边框的实现: 因为DIV不像表格那样简单的实现左右图片边框的效果

/*设置布局元素*/
div#layout{
	height: 100%;width: 800px;
	margin: 0px auto ;
	position: relative;
}
/*左边框*/
div#layout #leftline {
	background-image: url(../img/bg_border_left1.jpg) ;
	background-repeat: repeat-y;display: inline;
	width: 8px;	height: 100%;float: left;
}
/*右边框*/
div#layout #rightline {
	background-image: url(../img/bg_border_right1.jpg) ;
	background-repeat: repeat-y;
    width: 8px;	height: 100%;float: right;
}

div#layout #interline {
	height: 100%;display: inline;
	width: 784px;float: left;
	background-color: #ffffff ;/*设置颜色,为了与logo的画布颜色相同*/
}
7 楼 hanjs 2009-03-23  
lz的代码没有注释,没法看.
6 楼 luolonghao 2009-03-20  
js按照这样的java风格写代码会很长,javascript开发最重要的原则是保持代码可读性的前提下尽量缩减代码量。

BJExtreme =  function(){} ; 可以写成 BJExtreme = {};
 
BJExtreme.Dom.$ = function(id){ 
    return document.getElementById(id); 
}
感觉完全没必要,省不了多少字节。


5 楼 vb2005xu 2009-03-20  
增加一段代码

$(document).ready(function(){
	$.ajaxSetup({async:false});//同步加载
	//定义全局对象
	if(typeof WebWidget == 'undefined')
		var WebWidget =  function(){} ;
	
	//设置根目录
	$('script').each(function(){
		var match = $(this).attr('src').match(/.*boot.js($|\?.*)/);
		if (match){
			WebWidget.appPath = $(this).attr('src').replace(/core\/boot\.js.*/, '');
		}
	});
}
4 楼 vb2005xu 2009-03-20  
http://www.iamsese.cn/view/cssbook/cssonlineguide/
在线CSS手册
3 楼 vb2005xu 2009-03-19  
2 楼 vb2005xu 2009-03-19  
提供一个新的IP地址校验 Widget .. 尚未实现拖拽功能
[url]http://iamsese.cn/view/widget/iamsese/ipvalidator.html
[/url]
刚刚吧自己的那个文本论坛挣到里面了 大家看看 提点建议啊
1 楼 vb2005xu 2009-03-18  
http://www.tiddlywiki.com/  很牛B的一个 程序

相关推荐

    jquery-ui.css、jquery-ui.js下载

    总的来说,jQuery UI为开发者提供了强大且易于使用的用户界面组件,通过`jquery-ui.css`和`jquery-ui.js`,我们可以快速构建交互性丰富的Web应用,提高用户的操作体验。然而,合理地配置和优化这两个文件,以适应...

    jquery-ui-1.8.16.custom.min.js/jquery-ui-1.8.16.custom.css

    **jQuery UI** 是一个强大的JavaScript库,用于构建用户界面,它基于流行的jQuery库。这个压缩包包含两个关键文件:`jquery-ui-1.8.16.custom.min.js` 和 `jquery-ui-1.8.16.custom.css`,这些都是jQuery UI的特定...

    office-ui-fabric-react, 为 Office 和 Office 365构建组件的反应组件.zip

    office-ui-fabric-react, 为 Office 和 Office 365构建组件的反应组件 的 Office UI fabric 响应基于响应的前端框架,用于构建 Office 和 Office 365的经验。 fabric 响应是一个响应性的。移动的第一系列健壮组件,...

    uniapp组件库-ThorUI-uni-vip.zip

    Vue.js的指令和组件系统使得构建复杂应用变得简单。 3. **组件化开发**:在uniapp中,组件是可复用的UI部件,如按钮、输入框、导航栏等。开发者可以通过组合这些组件快速搭建应用界面。ThorUI-uni-vip提供了许多...

    KendoUI速查手册--中文

    Kendo UI 是一款由 Telerik 公司开发的前端 JavaScript 框架,专门用于构建交互式的 Web 应用程序。这个“Kendo UI 速查手册”提供了全面且详细的中文指南,帮助开发者快速掌握和应用 Kendo UI 的各种组件、功能和...

    jquery插件jquery-ui-1.8.2.custom.min.js

    《jQuery UI与jQuery插件深度解析——以jquery-ui-1.8.2.custom.min.js为例》 在Web开发领域,jQuery库以其简洁易用的API和强大的功能深受开发者喜爱。而jQuery UI作为jQuery的一个扩展,提供了丰富的用户界面组件...

    jquery-ui-1.8.6 js库

    jQuery UI 是一个基于 jQuery JavaScript 库的用户界面插件集合,它为开发者提供了丰富的功能和华丽的样式,帮助构建具有高度交互性的网页应用。这个版本,即 jQuery UI 1.8.6,包含了各种组件和特效,为网页设计和...

    element-ui.rar element-ui核心库压缩包

    Element UI 是一个基于 Vue.js 的开源 UI 组件库,它为开发者提供了丰富的界面组件,用于构建优雅的前端应用。这个“element-ui.rar”压缩包包含了 Element UI 的核心库,是开发人员快速搭建企业级 Web 应用的重要...

    JQueryUI组件 JS下载

    这个下载包包含了jQueryUI的核心组件以及相关的CSS和JavaScript文件,非常适合开发者快速构建具有丰富交互功能的Web应用。 1. **jQueryUI组件** - **Dialog(对话框)**: 提供模态或非模态的弹出窗口,用于警告、...

    Tailwind UI 最新版2024-02-14.zip

    Tailwind UI 是一款高度可定制的前端用户界面框架,它为开发者提供了丰富的设计组件和样式,使得构建响应式、无障碍的网页应用变得简单快捷。2024年2月14日更新的“Tailwind UI 最新版”包含了该框架最新的特性和...

    ligerui-LigerUI-V1.2.5.rar

    LigerUI是一款强大的JavaScript界面开发框架,主要用于构建高效、易用且美观的Web应用程序。它的V1.2.5版本提供了全面的组件和功能,帮助开发者实现列表、编辑和图标等界面元素的一体化集成。在这款压缩包“ligerui-...

    jquery插件jquery-ui-1.8.18.custom.min.js及css文件

    - **事件处理**:通过JavaScript代码绑定事件监听器,实现对jQuery UI组件的控制和扩展,如打开/关闭对话框、改变滑块值等。 - **兼容性和性能优化**:确保所使用的jQuery UI版本与目标浏览器兼容,并考虑使用CDN...

    jquery-ui+jquery-ui-rails

    在Web开发领域,jQuery UI和Rails框架的结合使用能够构建出功能丰富、交互性强的用户界面。本文将深入探讨如何将这两个强大的工具集结合,以提升Web应用的用户体验。 首先,jQuery UI是基于jQuery库的一个扩展,它...

    基于Element-ui的t-ui二次封装Vue组件设计源码

    本项目为基于Element-ui框架的t-ui组件库的Vue组件封装设计源码,总计包含411个文件,涵盖186个Vue文件、96个JavaScript文件、63个Markdown文件、13个JSON文件、12个SCSS文件、8个PNG文件、4个JPG文件、4个CSS文件、...

    jquery-ui-1.7.3.custom 完整开发包

    其中,主文件(如 `jquery-ui.js` 或 `jquery-ui.min.js`)包含了所有组件和功能。此外,还可能有按功能分隔的单独文件,如 `draggable.js`、`resizable.js` 等,这些文件分别对应拖放、可调整大小等交互功能。...

    element-ui资源包

    Element UI 是一个基于 Vue.js 的开源 UI 组件库,它为开发者提供了丰富的组件,以便快速构建美观、响应式的用户界面。这个"element-ui资源包"包含了所有你需要在前端项目中使用 Element UI 的必要文件和资源。 ...

    swagger-bootstrap-ui

    它提供了预设的CSS样式、组件和JavaScript插件,可以快速构建响应式和移动优先的网站。Swagger Bootstrap UI利用了Bootstrap的样式和组件,使得Swagger UI界面更符合现代审美,同时也提高了用户体验。 3. **Swagger...

    office-ui-fabric-js, 用于 Office 和 Office 365的经验的JavaScript组件.zip

    office-ui-fabric-js, 用于 Office 和 Office 365的经验的JavaScript组件 :面向和 Office 365构建经验的JavaScript前端框架 fabric 。JS JS是一个JavaScript前端框架,它提供可视化的visuals组件扩展。工作和使用,...

    NaiveUI前端UI框架,UI组件库的js文件资源下载

    NaiveUI是一个基于Vue 3的现代化前端UI框架,它为开发者提供了丰富的组件库,以帮助构建具有专业外观和交互性的Web应用。该框架的核心特点包括其完整的功能集、高度可定制的主题以及对TypeScript的支持。 1. **Vue ...

    coreui-pro-all-frameworks-2018-12-04.zip

    React版基于最新的React库,结合CoreUI的组件,使得创建交互式用户界面变得更加简单。启动模板让新项目的搭建更为便捷。 4. **CoreUI Pro Vue版**:Vue.js爱好者则可以选择`coreui-pro-vue-admin-template-2.0.3`和...

Global site tag (gtag.js) - Google Analytics