關(guān)于Web前端學(xué)習(xí)的必經(jīng)階段。正在從事Web前端學(xué)習(xí)的小伙伴們來和小伙伴們一起看一看吧。希望能夠?qū)Υ蠹矣兴鶐椭?/p>
目前創(chuàng)新互聯(lián)已為近1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管運營、企業(yè)網(wǎng)站設(shè)計、巢湖網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
第一階段:
● HTML+CSS:
HTML進(jìn)階、CSS進(jìn)階、div+css布局、HTML+css整站開發(fā)、
● JavaScript基礎(chǔ):
Js基礎(chǔ)教程、js內(nèi)置對象常用方法、常見DOM樹操作大全、ECMAscript、DOM、BOM、定時器和焦點圖。
● JS基本特效:
常見特效、例如:tab、導(dǎo)航、整頁滾動、輪播圖、JS制作幻燈片、彈出層、手風(fēng)琴菜單、瀑布流布局、滾動事件、滾差視圖。
● JS高級特征:
正則表達(dá)式、排序算法、遞歸算法、閉包、函數(shù)節(jié)流、作用域鏈、基于距離運動框架、面向?qū)ο蠡A(chǔ)、
● JQuery:基礎(chǔ)使用
懸著器、DOM操作、特效和動畫、方法鏈、拖拽、變形、JQueryUI組件基本使用。
第二階段:HTML5和移動Web開發(fā)
● HTML5:
HTML5新語義標(biāo)簽、HTML5表單、音頻和視頻、離線和本地存儲、SVG、Web Socket、Canvas.
● CSS3:
CSS3新選擇器、偽元素、臉色表示法、邊框、陰影、background系列屬性改變、Transition、動畫、景深和深透、3D效果制作、Velocity.js框架、元素進(jìn)場、出場策略、炫酷CSS3網(wǎng)頁制作。
● Bootstrap:
響應(yīng)式概念、媒體查詢、響應(yīng)式網(wǎng)站制作、刪格系統(tǒng)、刪格系統(tǒng)原理、Bootstrap常用模板、LESS和SASS。
● 移動Web開發(fā):
跨終端WEB和主流設(shè)備簡介、視口、流式布局、彈性盒子、rem、移動終端JavaScript事件、手機中常見JS效果制作、Zepto.js、手機聚劃算頁面、手機滾屏。
第三階段:HTTP服務(wù)和AJAX編程
● WEB服務(wù)器基礎(chǔ):
服務(wù)器基礎(chǔ)知識、Apache服務(wù)器和其他WEB服務(wù)器介紹、Apache服務(wù)器搭建、HTTP介紹。
● PHP基礎(chǔ):
PHP基礎(chǔ)語法、使用PHP處理簡單的GET或者POST請求、
● AJAX上篇:
Ajax簡介和異步的概念、Ajax框架的封裝、XMLHttpRequest對象詳細(xì)介紹方法、兼容性處理方法、Ajax框架的封裝、Ajax中緩存問題、XML介紹和使用。
● AJAX下篇:
JSON和JSON解析、數(shù)據(jù)綁定和模板技術(shù)、JSONP、跨域技術(shù)、圖片預(yù)讀取和lazy-load技術(shù)、JQuery框架中的AjaxAPI、使用Ajax實現(xiàn)瀑布流案例額。
第四階段:面向?qū)ο筮M(jìn)階
● 面向?qū)ο蠼K極篇:
從內(nèi)存角度到理解JS面向?qū)ο?、基本類型、?fù)雜類型、原型鏈、ES6中的面向?qū)ο蟆傩宰x寫權(quán)限、設(shè)置器、訪問器。
● 面向?qū)ο笕筇卣鳎?/p>
繼承性、多態(tài)性、封裝性、接口。
● 設(shè)計模式:
面向?qū)ο缶幊趟季S、單例模式、工廠模式、策略模式、觀察者模式、模板方法模式、代理模式、裝飾者模式、適配器模式、面向切面編程。
第五階段:封裝一個屬于自己的框架
● 框架封裝基礎(chǔ):
事件流、冒泡、捕獲、事件對象、事件框架、選擇框架。
● 框架封裝中級:
運動原理、單物體運動框架、多物體運動框架、運動框架面向?qū)ο蠓庋b。
● 框架封裝高級和補充:
JQuery框架雛形、可擴展性、模塊化、封裝屬于傳智自己的框架。
第六階段:模塊化組件開發(fā)
● 面向組件編程:
面向組件編程的方式、面向組件編程的實現(xiàn)原理、面向組件編程實戰(zhàn)、基于組件化思想開發(fā)網(wǎng)站應(yīng)用程序。
● 面向模塊編程:
AMD設(shè)計規(guī)范、CMD設(shè)計規(guī)范、RequireJS,LoadJS、淘寶的SeaJS。
第七階段:主流的流行框架
● Web開發(fā)工作流:
GIT/SVN、Yeoman腳手架、NPM/Bower依賴管理工具、Grunt/Gulp/Webpack。
● MVC/MVVM/MVW框架:
Angular.js、Backbone.js、Knockout/Ember。
● 常用庫:
React.js、Vue.js、Zepto.js。
第八階段:HTML5原生移動應(yīng)用開發(fā)
● Cordova:
WebApp/NativeApp/HybirdApp簡介、Cordova簡介、與PhoneGap之間的關(guān)系、開發(fā)環(huán)境搭建、Cordova實戰(zhàn)(創(chuàng)建項目,配置,編譯,調(diào)試,部署發(fā)布)。
● Ionic:
Ionic簡介和同類對比、模板項目解析、常見組件及使用、結(jié)合Angular構(gòu)建APP、常見效果(下拉刷新,上拉加載,側(cè)滑導(dǎo)航,選項卡)。
● React Native:
React Native簡介、React Native環(huán)境配置、創(chuàng)建項目,配置,編譯,調(diào)試,部署發(fā)布、原生模塊和UI組件、原生常用API。
● HTML5+:
HTML5+中國產(chǎn)業(yè)聯(lián)盟、HTML5 Plus Runtime環(huán)境、HBuilder開發(fā)工具、MUI框架、H5+開發(fā)和部署。
第九階段: Node.js全棧開發(fā)
● 快速入門:
Node.js發(fā)展、生態(tài)圈、Io.js、Linux/Windows/OS X環(huán)境配置、REPL環(huán)境和控制臺程序、異步編程,非阻塞I/O、模塊概念,模塊管理工具、開發(fā)流程,調(diào)試,測試。
● 核心模塊和對象:
全局對象global,process,console,util、事件驅(qū)動,事件發(fā)射器、加密解密,路徑操作,序列化和反序列化、文件流操作、HTTP服務(wù)端與客戶端、Socket.IO。
● Web開發(fā)基礎(chǔ):
HTTP協(xié)議,請求響應(yīng)處理過程、關(guān)系型數(shù)據(jù)庫操作和數(shù)據(jù)訪問、非關(guān)系型數(shù)據(jù)庫操作和數(shù)據(jù)訪問、原生的Node.js開發(fā)Web應(yīng)用程序、Web開發(fā)工作流、Node.js開發(fā)Blog案例。
● 快速開發(fā)框架:
Express簡介+MVC簡介、Express常用API、Express路由模塊、Jade/Ejs模板引擎、使用Express重構(gòu)Blog案例、Koa等其他常見MVC框架。
● Node.js開發(fā)電子商務(wù)實戰(zhàn):
需求與設(shè)計、賬戶模塊注冊登錄、會員中心模塊、前臺展示模塊、購物車,訂單結(jié)算、在線客服即時通訊模塊。
這個是要打開服務(wù)器訪問的、因為他操作了圖像數(shù)據(jù)流、要用到服務(wù)器
否則就會報錯,沒有效果。。。
The canvas has been tainted by cross-origin data.
如圖所示:我放到服務(wù)器訪問、效果有了
隨著移動互聯(lián)網(wǎng)的發(fā)展,web前端逐漸受到企業(yè)的重視,前端開發(fā)人員的薪資也水漲船高,越來越多的人看好前端行業(yè)的發(fā)展,想要轉(zhuǎn)行加入。下面,給大家分享一份web前端學(xué)習(xí)路線圖,希望對初學(xué)者有所幫助。Web前端行業(yè)的發(fā)展,讓前端人員能完成比以前更多的職責(zé)范圍,所以未來前端可以寬口徑就業(yè),前景非常好。
對于零基礎(chǔ)的人而言,要怎么學(xué)習(xí)web前端呢?
1、 前端頁面重構(gòu)。主要內(nèi)容為PC端網(wǎng)站布局、Photoshop 工具及切圖、H5移動端網(wǎng)頁布局、HTML5+CSS3新特性與交互。學(xué)習(xí)目標(biāo)是完成PC端網(wǎng)站布局,可實現(xiàn)響應(yīng)式布局,一套代碼適配 PC 端、移動端、平板設(shè)備等。
2、 前后端網(wǎng)頁交互。主要內(nèi)容為JavaScript語法全面進(jìn)階、ES6 到 ES10 新語法實踐、jQuery 應(yīng)用及插件使用、設(shè)計模式及插件編寫、封裝JS工具庫及Web APIS、AJAX+PHP+MySQL前后端交互、前端工程化與模塊化應(yīng)用以及PC 端全棧開發(fā)項目等。學(xué)習(xí)目標(biāo)是可以掌握前端工程化工具,如 git、gulp、webpack 等,搭建項目及開發(fā)項目。
3、 Node.js + 前端框架。主要內(nèi)容為Node.js 全面進(jìn)階、Koa2+MongoDB搭建服務(wù)、Vue.js 框架、React.js 框架、小程序云開發(fā)與小程序框架、原生APP與混合APP、數(shù)據(jù)可視化與桌面應(yīng)用等。學(xué)習(xí)目標(biāo)是掌握桌面應(yīng)用及可視化大數(shù)據(jù),實現(xiàn)復(fù)雜數(shù)據(jù)展示類項目,能夠獨立完成前后臺相關(guān)功能,勝任HTML5全棧開發(fā)工程師職位。很多學(xué)習(xí)web前端的朋友都希望在學(xué)成后能找到一份滿意的工作,所以我們在學(xué)習(xí)過程中一定要注意實戰(zhàn)經(jīng)驗的積累,如果你所學(xué)的東西對企業(yè)沒有用,那你所做的一切都是無用功
1、首先:html
!DOCTYPE html
html
head
meta charset=utf-8 /
titleWater drops effect/title
link rel="stylesheet" href="css/main.css" type="text/css" /
script src="js/vector2d.js" type="text/javascript" charset="utf-8"/script
script src="js/waterfall.js" type="text/javascript" charset="utf-8"/script
/head
body
div class="example"
h3a href="#"Water drops effect/a/h3
canvas id="water"HTML5 compliant browser required/canvas
div id="switcher"
img onclick='watereff.changePicture(this.src);' src="data_images/underwater1.jpg" /
img onclick='watereff.changePicture(this.src);' src="data_images/underwater2.jpg" /
/div
div id="fps"/div
/div
/body
/html
2、然后是css樣式
body{background:#eee;margin:0;padding:0}
.example{background:#FFF;width:600px;border:1px #000 solid;margin:20px auto;padding:15px;-moz-border-radius: 3px;-webkit-border-radius: 3px}
#water {
width:500px;
height:400px;
display: block;
margin:0px auto;
cursor:pointer;
}
#switcher {
text-align:center;
overflow:hidden;
margin:15px;
}
#switcher img {
width:160px;
height:120px;
}
3、再然后是js代碼
function drop(x, y, damping, shading, refraction, ctx, screenWidth, screenHeight){
this.x = x;
this.y = y;
this.shading = shading;
this.refraction = refraction;
this.bufferSize = this.x * this.y;
this.damping = damping;
this.background = ctx.getImageData(0, 0, screenWidth, screenHeight).data;
this.imageData = ctx.getImageData(0, 0, screenWidth, screenHeight);
this.buffer1 = [];
this.buffer2 = [];
for (var i = 0; i this.bufferSize; i++){
this.buffer1.push(0);
this.buffer2.push(0);
}
this.update = function(){
for (var i = this.x + 1, x = 1; i this.bufferSize - this.x; i++, x++){
if ((x this.x)){
this.buffer2[i] = ((this.buffer1[i - 1] + this.buffer1[i + 1] + this.buffer1[i - this.x] + this.buffer1[i + this.x]) / 2) - this.buffer2[i];
this.buffer2[i] *= this.damping;
} else x = 0;
}
var temp = this.buffer1;
this.buffer1 = this.buffer2;
this.buffer2 = temp;
}
this.draw = function(ctx){
var imageDataArray = this.imageData.data;
for (var i = this.x + 1, index = (this.x + 1) * 4; i this.bufferSize - (1 + this.x); i++, index += 4){
var xOffset = ~~(this.buffer1[i - 1] - this.buffer1[i + 1]);
var yOffset = ~~(this.buffer1[i - this.x] - this.buffer1[i + this.x]);
var shade = xOffset * this.shading;
var texture = index + (xOffset * this.refraction + yOffset * this.refraction * this.x) * 4;
imageDataArray[index] = this.background[texture] + shade;
imageDataArray[index + 1] = this.background[texture + 1] + shade;
imageDataArray[index + 2] = 50 + this.background[texture + 2] + shade;
}
ctx.putImageData(this.imageData, 0, 0);
}
}
var fps = 0;
var watereff = {
// variables
timeStep : 20,
refractions : 2,
shading : 3,
damping : 0.99,
screenWidth : 500,
screenHeight : 400,
pond : null,
textureImg : null,
interval : null,
backgroundURL : 'data_images/underwater1.jpg',
// initialization
init : function() {
var canvas = document.getElementById('water');
if (canvas.getContext){
// fps countrt
fps = 0;
setInterval(function() {
document.getElementById('fps').innerHTML = fps / 2 + ' FPS';
fps = 0;
}, 2000);
canvas.onmousedown = function(e) {
var mouse = watereff.getMousePosition(e).sub(new vector2d(canvas.offsetLeft, canvas.offsetTop));
watereff.pond.buffer1[mouse.y * watereff.pond.x + mouse.x ] += 200;
}
canvas.onmouseup = function(e) {
canvas.onmousemove = null;
}
canvas.width = this.screenWidth;
canvas.height = this.screenHeight;
this.textureImg = new Image(256, 256);
this.textureImg.src = this.backgroundURL;
canvas.getContext('2d').drawImage(this.textureImg, 0, 0);
this.pond = new drop(
this.screenWidth,
this.screenHeight,
this.damping,
this.shading,
this.refractions,
canvas.getContext('2d'),
this.screenWidth, this.screenHeight
);
if (this.interval != null){
clearInterval(this.interval);
}
this.interval = setInterval(watereff.run, this.timeStep);
}
},
// change image func
changePicture : function(url){
this.backgroundURL = url;
this.init();
},
// get mouse position func
getMousePosition : function(e){
if (!e){
var e = window.event;
}
if (e.pageX || e.pageY){
return new vector2d(e.pageX, e.pageY);
} else if (e.clientX || e.clientY){
return new vector2d(e.clientX, e.clientY);
}
},
// loop drawing
run : function(){
var ctx = document.getElementById('water').getContext('2d');
watereff.pond.update();
watereff.pond.draw(ctx);
fps++;
}
}
window.onload = function(){
watereff.init();
}
4、然后就沒然后了