創建第一個SPA應用--2015-03-30記錄

創建第一個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>

效果就是頁面右下角有一塊白色區域,點擊後展開一個窗口,再點擊縮回原來的狀態

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章