• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

用html css javascript打造自己的RIA图文教程第1/2页

java 搞代码 4年前 (2022-01-05) 35次浏览 已收录 0个评论
文章目录[隐藏]

用html&css&javascript打造自己的RIA之一,包括了配置等

在制作之前,先建立开发环境。
打开netbeans6.1,在项目工作区,右击新建项目,选择Web目录下的Web应用程序。


项目名称输入RIADemo

选择运行的服务器以及java ee标准。

在这里选择tomcat5.0,j2ee1.4,本文介绍例子,并不依赖于服务器,因为html&css&javascript本身都是静态的,做完以后就是一个html文件。严格意义上的web程序肯定是要有一个服务器来运行的,netbeans还是采用了这种管理理念。
在这一步,已经可以点击完成建立项目,下一步是选择框架,这里,为了简单纯净,不选择任何框架。
建立好项目后,项目工作区项目结构如下:

因为是静态的,所以不需要关注Web页目录外的任何东西。
为了方便管理,还需要在Web页目录下新建两个目录,inc以及images,相当简单,这里不再赘述。
  第一个例子,页面请求时的wait,效果如图

这个例子是在当前页面中执行某个操作,还未离开或者返回操作结果前,冻结本页面,显示一个wait框。作用是提示用户,页面正在载入。特别是对于某些大批量数据的请求,该UI可以减轻客户因长时间等待而引起的烦躁。
简单分析一下,这个例子由2个要点组成。
1,静态元素
2,该框何时出现何时消失
该效果中的UI是一个有loading的框,该框处于变暗的背景上。
对于静态元素,不论其表现成什么样子,其本质总是HTML,CSS和javascript,当然嵌入控件的除外,比如flash,事实上嵌入的控件已经不在html等静态元素的范围内了。
该例中,带有loading的框实际上只是一个包含了具有滚动效果的图片和普通文本的div,只不过该div,用CSS进行了美化,然后结合网页的特点,使用javascript来控制该div显示和消失。
那么,如何来制作这样的效果,为了清晰地说明整个制作过程,暂不论javascript,先制作出该div。
在web页目录下,右击,新建–>html


选择html,给文件命名index
页面建立后,还需要的素材就是具有滚动效果的图片loading.gif,把该图片拷贝至images文件夹下。
接下来,新建一个CSS文件,在inc文件夹上右击,新建–>其他,在其他目录中选择层叠样式表,如图:

取名style,点击完成,生成CSS文件,通过该步骤新建的CSS,自动生成了一个样式root,把光标移动到root样式表的范围内,netbeans会显示一个针对CSS的样式生成器窗口,同时还有一个效果预览窗口,如下图:

编辑器右边的生成器窗口,提供了很多属性的GUI设置,并会自动生成对应的代码,而编辑器的下方则是该样式的预览效果,比如,笔者在字体面板里,样式选择italic,粗细选择bold,再选择下划线,颜色选择#ff0099(红色的一种),选择颜色时会弹出颜色选择器,选择对应的颜色,则预览效果如下图:

编辑器自动生成了代码,而预览框里也显示了应用后的效果,这一点netbeans是做地相当不错了。
需要说明的是,工具生成的代码固然简单,但是肯定没有自己手写来地灵活,好控制。
在这里,定义我们需要的等待框的样式
.loading
{
border:2px solid #a3bad9;/* 被应用样式对象的边框的样式 */
color:#003366; /* 被应用样式对象中的内容的颜色 */
padding:10px; /* 被应用样式对象中的内容距离样式边框的距离(上,下,左,右) */
margin:0; /* 被应用样式对象与其周围元素的距离(上,下,左,右) */
z-index:2000; /* 被应用样式对象在网页中的z坐标的值 */
width:205px; /* 被应用样式对象的宽度 */
text-align:center; /* 被应用样式对象中的内容居中 */
position:absolute; /* 被应用样式对象在页面中的位置显示方式 */
font-weight: bold; /* 被应用样式对象中的字体的样式 */
font-size: 13px; /* 被应用样式对象中的字体的大小 */
}
各属性的具体意思,读者如果有兴趣可以再找资料以做更深一步的了解,这里不做详述。
建立好CSS后,在刚才建立的index.html文件的部分,加入以下代码,以导入CSS样式。

区域加入

页面载入中…..


保存文件,在index.html文件上右击,选择运行文件

则自动弹出浏览器,显示效果如下:

一个框就出现了,细心的读者可以发现,该UI和一开始演示的略有不同,如果在刚才定义的loading样式中加入,如下代码:
background:white url(../images/block-bg.gif) repeat-x; /*被应用样式对象的背景,并设置成横向重复 */
当然还需要加入背景图block-bg.gif,加入背景图后,现在是效果如下:

至此该UI制作完成。
接下来制作如何使网页变暗,并且不能点击。
网页的变暗,最简单的办法就是把网页的背景色改成暗色,不过这个显然是没有意义的,因为改成暗色后,页面上的元素依然可以点击。
那么如何实现背景变暗,并且不能点击呢?
再分析静态网页的原理,变暗肯定是通过调整色彩来实现,而要实现不能点击,则可以通过,替换点击对象来实现,即在要点击的对象上,则生成一个对象,而这个对象是透明的,那么当用户点击的时候,他点击到的实际上是挡在底层对象上的透明对象,这样就给用户造成点击无效的错觉,如下图:

如果物体B是透明的,而且紧挨着物体A,第三方如果试图接触物体A,碰到的仅仅是物体B,那么一切针对A的接触将是无效的。
分析到这里,我们要做的就是有这个特殊效果的div,说到底还是一个CSS的制作和应用。
而暗色透明效果,可以通过CSS的滤镜属性来获得,重新一定一个新的样式bgdiv
.bgdiv
{
background:#ccc; /*背景色*/
opacity:.3; /*透明度*/
filter: alpha(opacity=30); /*滤镜透明*/
position:absolute; /* 被应用样式对象在页面中的位置显示方式 */
z-index:1000; /* 被应用样式对象在网页中的z坐标的值 */
width:500px; /* 被应用样式对象的宽度 */
height:500px; /* 被应用样式对象的高度 */
top: 0px; /* 被应用样式对象距页面顶部的距离 */
left: 0px; /* 被应用样式对象距页面左端的距离 */
}

body区域,再加入:
,运行文件,效果如下:

到这里,UI的设计就完成了,但是我们看到的div大小是500*500,并没有充满整个页面,而且wait框也并没有居中,而且一开始效果就已经出来了,这样显然是不能直接使用的,真正在用的时候,我们需要背景充满整个页面,wait框需要居中显示,而且我们要能够控制该效果什么时候出现,什么时候消失。
那么这些工作,就需要依靠javascript来完成了。
javascript几乎可以控制页面上所有的静态元素,而上述效果正式通过控制背景divwait框来实现。
javascript中,要取得页面上的某个元素,最简单的方法是给目标对象的ID属性赋一个值,然后通过javascriptgetElementbyId来获得。
在这里,先给bgdivID属性赋值,如:

我们先解决第一个问题,即通过javascript来设置层的大小以充满整个页面。
function showbg()
{
var bgdiv=document.getElementById(“bgdiv”); //取得bgdiv对象
bgdiv.style.width=document.body.clientWidth; //设置bgdiv对象的宽度为网页可视区域的宽度
if (document.body.clientHeight>document.body.scrollHeight) //来源gao.dai.ma.com搞@代*码网设置bgdiv对象的高度为网页可视区域的高度
bgdiv.style.height=document.body.clientHeight;
else
bgdiv.style.height=document.body.scrollHeight;
}
在这里需要说明的是clientWidhscrollWidth都是表示可视区域的宽度,区别在如果网页中有滚动条,那么scollWidth要大于clientWidth,因为scollWidth包含了滚动条可?????????到的部分,而clientWidth没有,只是可见的部分。
上面的函数中width,这里采取了clientWidth,因为按照网页设计的基本原则,设计出的网页包含横向滚动条是相当不友好的,因为鼠标只能上下滚动,而并不能左至右滚动,因此这里直接取clientWidth,意为保证整个项目中不会出现横向滚动条。
下面高度的设置则是考虑了有竖向滚动条和没有竖向滚动条时的兼容性。
通过上述函数可以保证,调出来的bgdiv可以充满整个屏幕。

inc文件夹下,新建一个javascript文件,把上述函数拷贝进去,在页面中加入以下代码以引入该函数

   为了方便显示,在body标签里加入onload=”showbg();”,页面加载完成后,即可看见调整后的bgdiv的已经充满了整个页面。
调整wait框的显示位置原理也类似,函数为:
function showwait()
{
showbg(); //显示bgdiv
var loading=document.getElementById(“loaddiv”);//获得loading对象
loading.style.top=document.body.clientHeight/2+document.body.scrollTop-50;//设置loading距顶部的距离
loading.style.left=document.body.clientWidth/2-110;//设置loading距左端的距离
}
在onload事件里调用showwait,即可显示wait框位于暗色透明的背景上。

  在这里需要强调的是CSS属性的position属性,该属性一定要设置为absolute,上述的代码才会有效果,因为上述代码的位置是按照绝对位置来设置的。

  上述的效果是一打开页面就显示,如果要自己控制其是否显示,则需要用到CSS的属性display,当值为block时显示,为none时不显示。

  我们在上述CSS属性中,均加入display:none;则打开页面的时候,不显示效果。

  然后在showbg函数中加入 bgdiv.style.display=”block”;

  在showwait函数中加入 loading.style.display=”none”;

  在页面的body区域加入显示 ,运行页面,只可以看到显示链接,点击显示链接后,会显示我们需要的效果,如图:

  这样出现的效果,并不会消失。笔者在平时的学习工作中,也发现了一个现象,在页面上点击一个链接(即向服务器发送一个请求),当服务器还没有处理结束,没有返回页面给客户端的时候,页面本身是不会有变化的,而所谓的网速慢也是这样,点击了没反映,当服务器处理结束后,才把html放回给用户,页面才开始变化。那么,如果在点击链接的时候,触发showwait事件,该效果就会出现,直到服务器处理请求结束,页面发生重定向而消失。

  比如,我们把显示的代码改为显示 然后运行页面,再点击显示,我们可以看到出现wait框,等页面消失就出现了Sun的主页。
  我们回头看一下,事实上该例子并没有特殊的东西,只是对HTML,CSS和javascript的要求非常高,只有对这三个静态元素比较熟悉了,才能把握好。而且在这里,对美工也有一定的要求,需要说明的是wait的滚动图片以及背景图片并不是笔者所做,是用的ext框架的图片,wait框的CSS样式也是参考的ext的。
  值得一说的是,netbeans6.1的编辑器对javascript做了比较丰富的提示支持,不光有关键字的支持,还有对兼容浏览器的提示,甚至提供了一些简单的例子。

  本文花了很大的篇幅,讲解了一个并不复杂的例子,目的在于通过详细的思考和开发流程,来给读者深入剖析如何开发自己的RIA。

  可以看出,要制作这种类型的RIA,尽管还是需要一定的美工基础以及页面设计能力,但其基本制作步骤,不外乎以下两步:

  1.利用HTML和CSS制作自己的UI。

  2.仔细研究页面的行为模式,编写何时的javascipt来控制UI。

  在下一篇文章里,笔者将给大家介绍一个比较复杂的综合性的例子,包含了弹出对话框,弹出菜单,特殊效果的层以及拖动的窗口等效果。

12下一页阅读全文

相关文章

  • Java爬取豆瓣电影数据的方法详解

    这篇文章主要介绍了Java爬取豆瓣电影数据的方法,结合实例形式详细分析了Java爬取豆瓣电影数据相关原理、操作步骤、实现技巧与注意事项,需要的朋友可以参考下

    2020-04-04

  • Java class文件格式之访问标志信息_动力节点Java学院整理

    access_flags 描述的是当前类(或者接口)的访问修饰符, 如public, private等, 此外, 这里面还存在一个标志位, 标志当前的额这个class描述的是类, 还是接口

    2017-06-06

  • Java多线程和并发基础面试题(问答形式)

    多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,感兴趣的小伙伴们可以参考一下

    2016-06-06

  • maven环境变量配置以及失败原因解析

    这篇文章主要为大家详细介绍了maven环境变量配置教程,以及为大家解析了安装失败的原因,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    2018-10-10

  • java 读取网页内容的实例详解

    这篇文章主要介绍了java 读取网页内容的实例详解的相关资料,希望通过本文能帮助到大家,让大家学习理解这部分内容,需要的朋友可以参考下

    2017-09-09

  • SpringBoot整合freemarker的讲解

    今天小编就为大家分享一篇关于SpringBoot整合freemarker的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    2019-01-01

  • IDEA上运行Flink任务的实战教程

    这篇文章主要介绍了IDEA上运行Flink任务的实战教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    2020-10-10

  • springboot中通过lua脚本来获取序列号的方法

    这篇文章主要介绍了springboot中通过lua脚本来获取序列号的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    2020-06-06

  • Java读取文件的简单实现方法

    这篇文章主要介绍了Java读取文件的简单实现方法,通过一个读取txt格式的log文件为例,详细的讲述了Java读取文件的方法及原理,需要的朋友可以参考下

    2014-09-09

  • 深入了解final在java中的应用

    谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。

    2019-06-06

最新评论

以上就是用html css javascript打造自己的RIA图文教程第1/2页的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:用html css javascript打造自己的RIA图文教程第1/2页

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址