创建第一个SPA应用--2015-03-30记录

简介: 创建第一个SPA应用从项目管理的思路开始进行。按照需求、功能、技术、测试、维护等都要先出文档,把需求和设计的文档、计划都完成后,就开始项目的开发工作。

创建第一个SPA应用从项目管理的思路开始进行。按照需求、功能、技术、测试、维护等都要先出文档,把需求和设计的文档、计划都完成后,就开始项目的开发工作。有计划的开展工作,才能定期跟踪和回顾。这样才能知道这段时间:做了什么,哪些功能是列了计划但没做的,问题和风险在哪里,有哪些需要进行调整的?一个软件的生命周期每个阶段的里程碑是不同的,要抓住重点。
2015-04-04新增--总是觉得时间不够用,每天工作的内容都要加班到很晚才完成,我已经工作了好几年了,解决问题应该很快很好才对,怎么越来越没有效率了?本来想做个文档,把该做的事情都详细的描述清楚,并且做个计划,但是时间不够啊~~~还是慢慢先看书,然后把代码贴上来吧,也算读完了一本书。

第一个小功能就是做一个右下角的聊天滑块,页面加载时是收起来的,点击是他会展开,再次点击时,他又恢复。在开始之前我们先把要做的事情做个提纲:

1、一个HTML页面,右下角有个默认关闭的滑块,div+css编码工作;

2、引入jquery,他提供浏览器兼容性良好的动画效果(可以用各个平台CDN资源)

3、JavaScript工作,编写一个chat函数,用来创建和管理聊天滑块。

4、当浏览器DOM可用时,就调用chat函数。

代码时间

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>SPA chapter 1</title>
<style type="text/css">
	body{width:100%;height:100%;overflow:hidden;background:#777;padding:0;margin:0;}
	#spa{top:8px;left:8px;bottom:8px;right:8px;border-radius:8px 8px 0 8px;}
	.spa-slider{position:absolute;bottom:0;right:2px;width:300px;height:16px;cursor:pointer;border-radius:8px 0 0;background-color:#fff;}
</style>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
	/*
	jslint	browser	:	true,	continue	:	true,
	devel	:	true,	indent	:	2,	maxerr	:	50,
	newcap	:	true,	nomen	:	true,plusplus:true,
	regexp	:	true,	sloppy	:	true,vars	:true,
	white	:	true
	*/
	//Module /spa/
// provides chat slider capability
	var spa = (function($){
	//Module scope variables
	var
		// set constants
		configMap = {
			extended_height	: 433,
			extended_title	: '点击缩放',
			retracted_height:16,
			retracted_title	: '点击展开',
			template_html	: '<div class="spa-slider"><\/div>'	
		},
		// declare all other module scope variables
		$chatSlider,
		toggleSlider,onClickSlider,initModule,
	
	// DOM method /toggleSlider/
	// alternates slider height
	//
	toggleSlider = function(){
		var
			slider_height = $chatSlider.height();
			//console.log(slider_height);
			// extend slider if fully retracted
			if(slider_height === configMap.retracted_height){
				$chatSlider.animate({height : configMap.extended_height}).attr("title",configMap.extended_title);
				return true;
			}
			// retract slider if fully extended
			else if(slider_height == configMap.extended_height){
				$chatSlider.animate({height : configMap.retracted_height}).attr("title",configMap.retracted_title);
				return true;	
			}
		// do not take action if slider is in transition
		return false;
	},
	
	// Event handler /onClickSlider/
	// receive click event and calls toggleSlider
	//
	onClickSlider = function(event){
		toggleSlider();
		return false;
	},
	
	// Public method /initModules/
	// sets initial state and provides feature
	// 
	initModule = function($container){
	  // render HTML
	  $container.html(configMap.template_html);
	  $chatSlider = $container.find(".spa-slider");
	  // initialize slider height and title
	  // bind the user click event to the event handler
	  $chatSlider.attr('title',configMap.retracted_title).click(onClickSlider);
	  return true;
	};
	return {initModule : initModule}
	}(jQuery));
	// start spa once DOM is ready
	jQuery(document).ready(function(e) {
        spa.initModule(jQuery("#spa"));
    });
</script>
</head>
<body>
<div id="spa">
	<div class="spa-slider"></div>
</div>
</body>
</html>

效果就是页面右下角有一块白色区域,点击后展开一个窗口,再点击缩回原来的状态

目录
相关文章
|
5月前
|
存储 语音技术 索引
语音识别,列表的定义语法,列表[],列表的下标索引,从列表中取出来特定的数据,name[0]就是索引,反向索引,头部是-1,my[1][1],嵌套列表使用, 列表常用操作, 函数一样,需引入
语音识别,列表的定义语法,列表[],列表的下标索引,从列表中取出来特定的数据,name[0]就是索引,反向索引,头部是-1,my[1][1],嵌套列表使用, 列表常用操作, 函数一样,需引入
|
5月前
|
NoSQL Java Redis
Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
|
7月前
|
关系型数据库 MySQL 测试技术
当update修改数据与原数据相同时会再次执行吗
当update修改数据与原数据相同时会再次执行吗
55 1
|
Shell 开发工具
写一个脚本/root/bin/argsnum.sh,接受一个文件路径作 为参数;如果参数个数小于1,则提示用户“至少应该给一个 参数”,并立即退出;如果参数个数不小于1,则显示第一个 参数所指向的文件中的空白行数
写一个脚本/root/bin/argsnum.sh,接受一个文件路径作 为参数;如果参数个数小于1,则提示用户“至少应该给一个 参数”,并立即退出;如果参数个数不小于1,则显示第一个 参数所指向的文件中的空白行数
80 1
|
SQL 关系型数据库 MySQL
MySQL变量使用与介绍之为查询结果增加序号列和自定义序号列
SQL三:用户表(包含字段有:用户ID[自增]、姓名、性别、民族、出生日期、身份证号),无论查询条件如何,要求查询的结果显示一个行号列(即:第一行显示1,第二行显示2,第三行显示3,依此类推)
266 0
|
存储 编译器 C++
【c++】:list模拟实现“任意位置插入删除我最强ƪ(˘⌣˘)ʃ“
【c++】:list模拟实现“任意位置插入删除我最强ƪ(˘⌣˘)ʃ“
113 0
|
前端开发
Ember Data 之记录操作:创建、更新和删除
前面在《Ember.js 项目开发之 Ember Data》介绍了Ember Data 和 《Ember Data 之模型定义》、《Ember Data 之记录查询》,本文将继续介绍记录操作:创建、更新和删除。
147 0