admin 管理员组文章数量: 887629
2024年1月18日发(作者:什么是内容管理系统)
课程设计报告
课程设计名称:院系名称:学生姓名:班 级:学 号:成 绩:指导教师:开课时间:
脚本开发技术 (JavaScript)
2017-2018 学年第一学期
目录
一、 课程设计概要 ..........................................2
(一)设计目的: .........................................2
(二)开发环境: .........................................2
(三)开发技术: .........................................2
二、 网站总体设计 ...................................... 2
三、 实现部分 ......................................... 4
(一)网页结构: .........................................4
(二)网页展示: .........................................8
(三)网页行为的实现方案:................................9
四、 总结 ........................................... 13
参考书目: ........................................... 14
一、 课程设计概要
(一)设计目的:
课程设计的目的在于培养学生综合运用所学的关于网页设计与制作、JavaScript编程等方面的知识,独立解决网页设计与制作中的问题。使学生通过此次课程设计,熟悉并掌握网页设计与制作方面的技能,掌握动态网页设计与制作的流程和方法,能够综合运用JavaScript、HTML、CSS实现网页前台效果。
(二)开发环境:
Hbuilder编辑器,谷歌浏览器
(三)开发技术:
HTML,css,JavaScript脚本语言
二、
此次课程设计做的是一个“JavaScript学习天地”网站的主页面,主要实现了分类导航,搜索,跑马灯字样,动态时钟,滚动广告,日历等网页功能。
打开网页,首先映入眼帘的是网页的头部,即为此网页的导航栏部分。头部导航栏包含了整个网站的页面名称,每个页面名称都附上了相应页面的链接地址,当鼠标略过每个页面名称时,会有一个背景色加深的特效,同时鼠标变为一个小手的标志,当点击某个页面名称时就会跳转到相应的页面上。除此之外,在导航栏的右面还添加了一个搜索框,在搜索框里输入想要搜索的内容,之后点击搜索框后面的搜索按钮就可以在此网站搜索到相应内容。
在导航栏的左下部分,做了一个滚动出现“欢迎进入JavaScript学习天地”字样的跑马灯特效,同时也使网页的title具有同样的效果。跑马灯的右面对应部分是一个动态时钟,显示当前日期和时间。在导航栏与页面尾部之间的就是此网页的主体部分。主体部分也是大致分为了三个板块,分别为top,center,yemian三部分。首先top板块是对于当前页面的一个整体的大分类,从学习方向,科目分类,学习类型三个方向分别导航,让用户可以一次性实现精准学习内容的选择。此网页页面显示 的是关于JavaScript的全部科目全部类型的学习内容,所以是三个方向是定位在了JavaScript,全部,全部上面,所以显示的时候是黑色背景白色文字的效果,而当鼠标划过其它选项时相应文字会变为红色,点击时就会筛选出相应的内容。center中的内容为当前页面的全部的学习菜单内容,对于此菜单也做了一个小的分类,即按照学习内容的热度和更新 2
网站总体设计
日期做了分类,分为了“最热”和“最新”两种类型,用户可以根据自己的需求进行选择,当前页面定位在了“最热”上面,鼠标划过时会有和之前一样的效果出现。接下来就是学习菜单的内容,每门课程的封面都与课程内容相对应,同时,在每个课程封面下方都有课程名称和当前观看人数,课程时长,难易程度等简单的介绍,用户可根据自己的需求进行选择,每个课程封面都链接了对应课程的内容,点击即可跳转到相应课程。在center的最底部是一个页面选择菜单,因为当前页面为第一页即首页,所以首页和上一页定位,鼠标点击无法实现跳转,数字1背景色为红色,字体颜色为白色,表示当前所处页面,鼠标划过其它页面数字 时有跟前面一样的效果,点击某页即可跳转到相应页面。以上为网页主体的大致功能介绍。
日历一般离不开表格,通常都使用表格装载指定月的日期等信息。所以,要编写JS日历,首先必须解决的问题是表格的行与列问题。列是固定的,七列,因为一周有七天。行需要动态计算,因为,每一个月的第一天是星期几是一个变数,因而第一天在表格中的第几个单元也就跟着变化,同时,每个月的总天数不一致也影响着各个月对表格行数的需要量。考虑到闰年问题会影响二月份的天数,我们先编写一个判断闰年的自编函数:
functionis_leap(year) {
return (year%100==0?res=(year%400==0?1:0):res=(year%4==0?1:0));
}
接着定义一个包含十二个月在内的月份总天数的数组:
m_days=new Array(31,28+is_leap(ynow),31,30,31,31,30,31,30,31,30,31);
m_days这个数组里,二月份的天数已经加入闰年的信息:28+is_leap(ynow)。数组元素从0开始,正好对应于JS提供的Date函数提供的getMonth返回值,即0表示一月,1表示二月,2表示三月,依此类推。
这样,各月总数可以这样取得:m_days[x]。其中,x为0至11的自然数。使用Date函数的getDay取得,返回的值从0到6,0表示星期一,1表示星期二,2表示星期三,其余依此类推。代码如下(假设要处理的时间为2008年3月):
n1str=new Date(2008,3,1);
firstday=();
有了月总天数和该月第一天是星期几这两个已知条件,就可以解决表格所需行数问 3
题:(当前月天数+第一天是星期几的数值)除以七。表格函数需要整数,因此,我们使用来处理:
tr_str=((m_days[mnow] + firstday)/7);
表格中的tr标签实际上代表表格的行,因此变量tr_str是我们往下写表格的重要依据。使用两个for语句嵌套起来实现:外层for语句写行,内层for语句写单元格。
for(i=0;i (" for(k=0;k<7;k++) { //内层for语句 - td标签 idx=i*7+k; //表格单元的自然序号 date_str=idx-firstday+1; //计算日期 //这里是处理有效日期代码 } //内层for语句结束 (""); ");
} //外层for语句结束
单元格的自然序号是否代表有效日期非常关键,为此必须加入一个过滤机制:仅打印有效的日期。有效的日期大于0小于小于等于处理月的总天数。
三、 实现部分
在 网页底部有一个footer区,主要作用为显示合作网站的名称及跳转,最底部是声明网页版权的作用。
(一)网页结构:
此网页主要是依靠块与块的包裹和连接来实现的。首先导航栏是在header里面的,header里面定义了一个为content的块,content里面又定义了是三个小块分别包裹logo图标,导航列表,搜索栏。具体实现代码为
网页中间也时主体部分又分了三个 大部分top,center,footer。Top部分为大菜单部分,代码为
方向:
先做好了一个块之后,在此基础上修改之后成为后两个,这样 就形成了主体部分的大导航栏部分。Center部分为包裹学习内容的块,主要是热度分类,学习内容展示介绍,页面菜单。具体代码如下:
- 最热
- 最新
5
独孤九贱(6)_jQuery视频教程
16057人在看
78课时
/figure> //这是一个学习内容的展示区域块
下面是页面菜单的代码:
div class="yiemian">
最后的Footer区是相关网站的展示与跳转,还有相关版权的声明,代码如下:
四、 总结
此次课程设计大约用了两周,在这两周里,通过亲自动手实践对于JavaScript,网页制作有了更加深刻的理解与认识。从一开始的无从下手到开始网页的整体构思,之后开始一步一步搭建,修改,在这整个过程中遇到过很多问题和困难。开始遇到困难的时候根本无从下手,处于一无所知的状态,但是后来通过老师同学的帮助和搜索网络资料翻阅书籍等能够解决遇到的困难。等度过开头期,到中间阶段的时候,已经可以自己 13
分析一些遇到的简单的问题了,也可以看出问题根源所在。最后 完成课程设计的时候,感觉很有成就感,同时也对于平时课堂上讲解的知识有了更深刻的认识,这种在课堂上学的东西可以亲手运用它来做出东西来的感觉让我体会到了真正的学以致用。在此次课程设计中遇到的问题首先有网页页面宽度的尺寸问题,大小设置不合适就会导致整个页面错乱,还有就是网页放大时可以正常显示,但是窗口缩小时就会出现滑动滚动条出现空白的现象,通过查阅资料得知需要用min-width设置为页面最大的宽度,这样窗口缩小时就不会出现上述现象。之后就是块元素的格式大小位置设置的问题,在此网页中样式的设置运用的css样式表,所以有的时候会出现引用错误的问题。在做网页上方的跑马灯时,出现过函数引用错误和字符串的字数个数的不恰当错误。在做动态时钟时,一开始不能显示正确的中文格式,后通过varstr=oYear+'年'+oMonth+'月'+oDate+'日'+'
'+oWeek+' '+oHours+':'+oTwo(oMinutes)+':'+oTwo(oSec)
varoBox=mentById('wrap');
TML=str;语句得以实现。再就是时钟显示当秒和分出现一位数时不能一01,02这样的格式显示,后来通过if else语句判断实现。做的过程中遇到的几个大方面的问题就是这些,通过这些问题让我收获了很多平时学习不到的东西。
参考书目:
【1】 贗青龙,郭永灿 《网页设计与制作》,清华大学出版社,北京,20015年。
【2】 曾探 《JavaScript设计模式与开发实践》,人民邮电出版社,北京,2012年。
14
发表评论