系统平台前端设计编码规范解析.docx

上传人:b****5 文档编号:8814012 上传时间:2023-05-15 格式:DOCX 页数:47 大小:341.23KB
下载 相关 举报
系统平台前端设计编码规范解析.docx_第1页
第1页 / 共47页
系统平台前端设计编码规范解析.docx_第2页
第2页 / 共47页
系统平台前端设计编码规范解析.docx_第3页
第3页 / 共47页
系统平台前端设计编码规范解析.docx_第4页
第4页 / 共47页
系统平台前端设计编码规范解析.docx_第5页
第5页 / 共47页
系统平台前端设计编码规范解析.docx_第6页
第6页 / 共47页
系统平台前端设计编码规范解析.docx_第7页
第7页 / 共47页
系统平台前端设计编码规范解析.docx_第8页
第8页 / 共47页
系统平台前端设计编码规范解析.docx_第9页
第9页 / 共47页
系统平台前端设计编码规范解析.docx_第10页
第10页 / 共47页
系统平台前端设计编码规范解析.docx_第11页
第11页 / 共47页
系统平台前端设计编码规范解析.docx_第12页
第12页 / 共47页
系统平台前端设计编码规范解析.docx_第13页
第13页 / 共47页
系统平台前端设计编码规范解析.docx_第14页
第14页 / 共47页
系统平台前端设计编码规范解析.docx_第15页
第15页 / 共47页
系统平台前端设计编码规范解析.docx_第16页
第16页 / 共47页
系统平台前端设计编码规范解析.docx_第17页
第17页 / 共47页
系统平台前端设计编码规范解析.docx_第18页
第18页 / 共47页
系统平台前端设计编码规范解析.docx_第19页
第19页 / 共47页
系统平台前端设计编码规范解析.docx_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

系统平台前端设计编码规范解析.docx

《系统平台前端设计编码规范解析.docx》由会员分享,可在线阅读,更多相关《系统平台前端设计编码规范解析.docx(47页珍藏版)》请在冰点文库上搜索。

系统平台前端设计编码规范解析.docx

系统平台前端设计编码规范解析

系统平台前端设计编码规范

HTML,CSS,JavaScript

对系统平台中涉及到前端设计及编码部分的约定和建议

weiran

2010-2-5

【内部资料注意保密】

 

版本:

v1.0

武汉市精建工程科技有限公司

信息部

二〇一〇年二月

系统平台前端设计编码规范

1.概述

1.1.目的

为了使前端设计及编码标准化和模块化,从而提高工作效率和资源利用率,增加代码的可阅读性、重用性和继承性而编写。

1.2.范围

适用于本部门所有研发项目的前台设计规范和指导,重点倾向于标准和表现。

1.3.适用角色

页面前台工程师/网页设计师

1.4.强制性

前台工程师在前台界面设计中推荐按照此规范实施。

前台涉及技术主要分为html、CSS和JavaScript。

1.5.文档样式说明

斜体+粗体字:

表示需要重点关注的内容。

必须:

表示在设计编码时一定要进行的事项。

禁止:

表示在设计编码时一定不能进行的事项。

建议:

表示在设计编码时可以进行的事项,但根据实际情况可以进行调整。

开发人员:

默认为jsp开发人员,非专注前端的前端开发人员。

2.公司系统平台前端常用规范

2.1.结构

作为内部管理的BS系统,常见浏览界面如下:

作为jsp开发人员,仅需关心右侧红框中的界面内容,以上界面为标准浏览页面,主要分为:

●题头区域;

即上图

部分,该部分为装饰器自动装饰,无需开发人员关注。

●搜索区域;

⏹即上图

部分;

⏹需标识为【查询条件】;

⏹查询条件及输入框需保证在一行,否则需另起一行;

为保证以上效果在不同分辨率下都能正常显示,需使用span标签包裹查询语句,代码如下:

查询条件1

注:

以上代码仅展示span标签包裹代码,确保其不会换行的css代码如下,且应写入公共css文件中,与开发人员无关:

span{display:

inline-block}

●操作按钮区域;

按钮可能涉及到大量js代码,可抽为一个jsp页面,再include。

<%@includefile="btnoper.jsp"%>

●分页区域;

ex控件自带

●内容区域(以table为主)。

⏹文本默认靠左,为统一,可设置td的class为text;

⏹数字、日期靠右,可设置td的class为num和date;

⏹金额格式化,逢3位逗号,建议默认保留两位小数,,可设置td的class为sum。

常见编辑页面如下:

●可根据编辑内容情况,将其分解,例如:

基本信息和施工计量信息,以便用户方便的填写。

●对于必填项,必须使用红色星号标识。

●对于自动生成或单位,需进行文本框后标识,例如,

●增加页面,下拉框默认值为—请选择—。

●readonly全部用css设置无边框。

●文本框长度设置默认2个。

3.JavaScript设计编码规范

3.1.JavaScript的实现组成

●ECMAScript(核心)

描述了该语言的语法和基本对象。

●DOM(文档对象模型)

描述了处理网页内容的方法和接口,比如大家常用到的getElementById,getElementsByTagName。

●BOM(浏览器对象模型)

BOM描述了与浏览器进行交互的方法和接口,比如常用的document,frames,history。

3.2.JavaScript必须遵循的规则

JavaScript编码注意

●变量、函数名、运算符以及其他一切东西都是区分大小写的。

比如:

变量test与变量TEST是不同的。

●变量是弱类型的,定义变量时只用var运算符,可以将它初始化为任意值。

●每行结尾的分行可有可无,但良好的习惯是加上分号。

●变量名定义:

第一个字符必须是字母,下划线(_)或者美元符号($),余下的字符可以是下划线,美元符号或任何字母或数字字符。

JavaScript兼容性

通常所说的兼容性,就是所编写的JavaScript代码必须在IE6+,Firefox等主流浏览器上能正常运行。

●为保证其兼容性,尽可能的使用JavaScript类库——jQuery,为保证其稳定性,应使用jQuery1.2.6版本;

●在jQuery无法实现的情况下,使用JavaScript原生代码;

●在特殊情况下,例如需要用到JavaScript插件,但需要其他类库支持时,再引入其他JavaScript类库。

JavaScript与HTML代码分离

即不要把任何JavaScript代码写入HTML页面中。

采取以下步骤:

●把通用的JavaScript函数定义在一个分离的.js文件中,让所需的HTML页面去连接它。

●必须删除所有的事件处理句柄(注:

即行内的那些诸如onclick)并归入同一.js文件中去。

●对页面中需要非通用JavaScript函数实现的,在页面中加入JavaScript代码。

例如,未分离代码:

分离后的代码:

$(function(){

init();

});

JavaScript目录文件规则

●总目录名称为js,与app应用程序目录平级,js目录下放置系统通用js库类和插件;

●对于需要相应的图片和样式表支持的js插件,创建该插件名称的目录文件夹;

●images和css目录下创建不同js插件名称的目录,用来放置该插件对应的图片和样式表。

如下图所示:

3.3.常用jQuery函数

jQuery,顾名思义,也就是JavaScript和查询(Query),即是辅助JavaScript开发的库。

而JavaScript开发基本可以分为:

●查找DOM元素进行取值和赋值的操作、在特定DOM节点位置进行内容的取值和赋值操作(innerHTML);

●针对元素进行事件监听;

●通过操作DOM节点结合改变元素的CSS样式,达到绚丽的动画效果;

●对DOM元素进行AJAX操作。

DOM相关

基本选择器

选择器

描述

返回

示例

#id

根据给定的ID匹配一个元素

单个元素

$("#test")选取id为test的元素.

.class

根据给定的类名匹配元素

集合元素

$(".test")选取所有class为test的元素

element

根据给定的元素名匹配元素

集合元素

$("p")选取所有的

元素

*

匹配所有元素

集合元素

$("*")选取所有的元素

selector1,selector2,

……,selectorN

将每一个选择器匹配到的元素合并后一起返回

集合元素

$("div,span,p.myClass")选取所有

和拥有class为myClass的

标签的一组元素

层次选择器

选择器

描述

返回

示例

$("ancestordescendant")

选取ancestor元素里的所有descendant(后代)元素

集合元素

$("divspan")选取

里的所有的元素

$("parent>child")

选取parent元素下的child(子)元素,跟

$("ancestordescendant")有区别,$("ancestordescendant")是选择的是后代元素

集合元素

$("div>span")选取

元素下元素名是的子元素

$('prev+next')

选取紧接在prev元素后的next元素

集合元素

$('.one+div')是选取class为one的下一个

元素

$('prev~siblings')

选取prev元素之后的所有siblings元素

集合元素

$('#two~div')是选取id为two的元素后面的所有

兄弟元素

基本过滤选择器

选择器

描述

返回

示例

:

first

选取第一个元素

单个元素

$("div:

first")选取所有

元素中第一个
元素

:

last

选取最后一个元素

单个元素

$("div:

last")选取所有

元素中最后一个
元素

:

not(selector)

去除所有与给定选择器匹配的元素

集合元素

$("input:

not(.myClass)")选取class不是myClass的元素

:

even

选取索引是偶数的所有元素,索引从0开始

集合元素

$("input:

even")选取索引是偶数的元素

:

odd

选取索引是奇数的所有元素,索引从0开始

集合元素

$("input:

odd")选取索引是奇数的元素.

:

eq(index)

选取索引等于index的元素(index从0开始)

单个元素

$("input:

eq

(1)")选取索引等于1的元素

:

gt(index)

选取索引大于index的元素(index从0开始)

集合元素

$("input:

gt

(1)")选取索引大于1的元素(注:

大于1,而不包括1)

:

lt(index)

选取索引小于index的元素(index从0开始)

集合元素

$("input:

lt

(1)")选取索引小于1的元素(注:

小于1,而不包括1)

:

header

选取所有的标题元素:

比如h1,h2,h3等等

集合元素

$(":

header")选取网页中所有的

……

:

animated

选取当前正在执行动画的所有元素

集合元素

$("div:

animated")选取正在执行动画的

元素

属性过滤选择器

选择器

描述

返回

示例

[attribute]

选取拥有此属性的元素

集合元素

$("div[id]")选取拥有属性id的元素

[attribute=value]

选取属性的值为value的元素

集合元素

$("div[title=test]")选取属性title为“test”的

元素

[attribute!

=value]

选取属性的值不等于value的元素

集合元素

$("div[title!

=test]")选取属性title不等于“test”的

元素(注:

没有属性title的

也会被选取)

[attribute^=value]

选取属性的值以value开始的元素

集合元素

$("div[title^=test]")选取属性title以“test”开始的

元素

[attribute$=value]

选取属性的值以value结束的元素

集合元素

$("div[title$=test]")选取属性title以“test”结束的

元素

[attribute*=value]

选取属性的值含有value的元素

集合元素

$("div[title*=test]")选取属性title含有“test”的

元素

[selector1][selector2]

[selectorN]

用属性选择器合并成一个复合属性选择器,满足多个条件。

每选择一次,缩小一次范围。

集合元素

$("div[id][title$='test']")选取拥有属性id,并且属性title以“test”结束的

元素

表单对象属性过滤

选择器

描述

返回

示例

:

enabled

选取所有可用元素

集合元素

$("#form1:

enabled");选取id为“form1”的表单内的所有可用元素

:

disabled

选取所有不可用元素

集合元素

$("#form2:

disabled")选取id为“form2”的表单内的所有不可用元素

:

checked

选取所有被选中的元素(单选框,复选框)

集合元素

$("input:

checked");选取所有被选中的元素

:

selected

选取所有被选中的选项元素(下拉列表)

集合元素

$("select:

selected");选取所有被选中的选项元素

在jQuery中,提供了attr()方法来获取和设置元素属性,用removeAttr()方法来删除元素属性。

1.获取属性和设置属性

例如要获取

元素的属性title,那么只需要给attr()方法传递一个参数——你要获取的属性名称即可:

jQuery代码:

var$para=$("p");//获取

节点

varp_txt=$para.attr("title");//获取

元素节点属性title

如果想设置

元素的属性title的值,也可以使用同一个方法,不同的是,需要传递两个参数——属性名称和对应的值:

jQuery代码:

$("p").attr("title","yourtitle");//设置单个的属性值

如果需要一次性为同一个元素设置多个属性,可以使用下面的代码来实现:

$("p").attr({"title":

"yourtitle","name":

"test"});//将一个“名/值”形式的对象设置为匹配元素的属性。

注:

jQuery中的很多方法都是同一函数实现获取(getter)和设置(setter),比如上面的attr()方法,它既能设置元素的属性的值,也能获取元素的属性的值。

另外,类似的方法还有html()、text()、height()、width()、val()和css()等方法。

2.删除属性

在某些情况下,需要删除文档中某个元素的特定属性,那么可以使用removeAttr()方法来完成这一任务。

例子中,如果需要删除

元素的title属性,可以使用下面的代码实现:

$("p").removeAttr("title");//删除

元素的属性title

运行代码后,

元素的title属性被删除。

此时,

元素的HTML结构由:

你最喜欢的水果是?

变为:

你最喜欢的水果是?

1.html()

此方法类似JavaScript中的innerHTML属性,它可以用来读取或设置某个元素里的HTML内容。

为了能更加清楚的展示例子的效果,我们把

元素的HTML代码改成:

你最喜欢的水果是?

然后用html()方法对

元素进行操作:

varp_html=$("p").html();//获取

元素的HTML代码

alert(p_html);//打印出

元素的HTML代码

运行代码后,如图3-26所示:

图3-26获取

元素的HTML代码

如果需要设置某元素的HTML代码,那么也可以使用这个方法,不过需要为它传递一个参数。

比如,要设置

元素的HTML代码,可以使用如下代码来完成:

$("p").html("你最喜欢的水果是?

");//设置

元素的HTML代码

注:

html()方法可以用于XHTML文档,但不能用于XML文档。

2.text()

此方法类似JavaScript中的innerText属性,它可以用来读取或设置某个元素里的文本内容。

继续使用刚才的HTML代码:

你最喜欢的水果是?

用text()方法对

元素进行操作:

varp_text=$("p").text();//获取

元素的文本内容

alert(p_text);//打印出

元素的文本内容

运行代码后,如图3-27所示:

图3-27获取

元素的文本内容

同html()方法一样,如果需要为某元素设置文本内容,那么也要传递一个参数。

元素设置文本内容:

$("p").text("你最喜欢的水果是?

");//设置

元素的文本内容

注:

(1)JavaScript中的innerText属性并不能在Firefox下运行,而jQuery的text()方法支持所有浏览器。

(2)text()方法对HTML和XML文档都有效。

3.val()

此方法类似JavaScript中的value属性,它可以用来设置和获取元素的值。

不管元素是文本框,下拉列表还是单选框,它都可以返回元素的值。

如果元素为多选,则返回一个包含所有选择的值的数组。

事件监听

执行时机

$(document).ready()和window.onload有类似的功能

在DOM加载完成时运行的代码,可以这样写:

jQuery代码:

$(document).ready(function(){

 //在这里写你的代码...

});

在文档装载完成后,如果打算为元素绑定事件来完成某些事情,则可以使用bind()方法来对匹配元素进行特定事件的绑定,bind()方法的调用格式为:

bind(type[,data],fn);

它有三个参数,第一个参数是事件类型,类型有:

“blur”、“focus”、“load”、“resize”、“scroll”、“unload”、“click”、“dblclick”、“mousedown”、“mouseup”、“mousemove”、“mouseover”、“mouseout”、“mouseenter”、“mouseleave”、“change”、“select”、“submit”、“keydown”、“keypress”、“keyup”和“error”等,当然也可以是自定义名称。

第二个参数是可选,作为event.data属性值传递给事件对象的额外数据对象。

第三个参数是绑定的处理函数。

注:

可以发现,jQuery中的事件绑定类型比普通的JavaScript事件绑定类型少了“on”。

例如:

鼠标单击事件jQuery对应的是“click”,而JavaScript中是onclick()函数。

简写绑定事件

像click、mouseover和mouseout这类事件,在程序中经常会使用到,jQuery为此也提供了一套简写的方法。

简写方法和bind()的使用类似,实现的效果也相同,唯一的区别是能够减少代码量。

例如,把上面的例子改成使用简写绑定事件的方式,代码如下:

$(function(){

$("#f_id").click(function(){

$(this).hide();

varte=$(“[name=’test’]:

check”).val();

});

$("#panelh5.head").mouseover(function(){

$(this).next("div.content").show();

});

$("#panelh5.head").mouseout(function(){

$(this).next("div.content").hide();

})

});

注:

使用简写事件要注意,jQuery只对常用的事件进行了简化,有些事件并未做处理。

读者会发现有的事件用bind()可以绑定事件,而用简写方式就不可以。

例如mouseenter和mouseleave。

合成事件

jQuery有两个合成事件——hover()和toggle(),它们类似前面说过的ready()方法,都属于jQuery自定义的方法。

hover()方法

hover()方法的语法结构为:

hover(over,out);

它用于模仿鼠标悬停事件,当鼠标移动到元素上时,会触发指定的第一个函数(over);当鼠标移出这个元素时,会触发指定的第二个函数(out)。

将上面的例子改成用hover()方法,jQuery代码为:

$(function(){

$("#panelh5.head").hover(function(){

$(this).next("div.content").show();

},function(){

$(this).next("div.content").hide();

})

});

代码运行后的效果跟下面代码的效果是一样的。

当鼠标滑过新闻标题后,它下面的新闻内容将被显示;当鼠标滑出新闻标题后,相应的新闻内容则被隐藏。

$(function(){

$("#panelh5.head").mouseover(function(){

$(this).next("div.content").show();

});

$("#panelh5.head").mouseout(function(){

$(this).next("div.content").hide();

})

});

toggle()方法

toggle()方法的语法结构为:

toggle(fn1,fn2,......fnN);

它用于模仿鼠标连续点击事件,当第一次点击元素,则触发指定的第一个函数(fn1),当再次点击同一元素时,则触发指定的第二个函数(fn2),如果有更多函数,则依次触发,直到最后一个。

随后的每次点击都重复对这几个函数的轮番调用。

$(新闻标题).toggle(function(){

//新闻内容显示

},function(){

//新闻内容隐藏

});

动画

show()和hide()

show()和hide()是jQuery中最基本的动画。

在HTML文档里,为一个元素调用hide()方法,会将该元素的display样式改为“none”。

比如,使用如下代码隐藏element元素:

$(“element”).hide();//通过.hide(),隐藏元素

这段代码的功能跟用css()方法设置display属性效果相同:

element.css(“display”,”none”);//通过.css(),隐藏元素

当把元素隐藏后,可以使用show()方法将元素的display样式设置为先前的显示状态(“block”或“inline”):

jQuery代码:

$(“element”).show();

fadeIn()和fadeOut()

同show()方法不一样的是,fadeIn()和fadeOut()方法只改变元素的不透明度。

fadeOut()方法会在指定的一段时间内降低元素的不透明度,直到元素完全消失(“display:

none”)。

fadeIn()方法则相反。

在上个例子中,如果只想改变“新闻内容”的不透明度,而不想改变高度和宽度,就可以使用fad

展开阅读全文
相关搜索
资源标签

当前位置:首页 > 初中教育 > 科学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2