⑴ 前端開發必學的技術有哪些
這里給大家整理了一份系統全面的前端學習路線,主要掌握以下技術:
第一階段:專業核心基礎
階段目標:
1. 熟練掌握HTML5、CSS3、Less、Sass、響應書布局、移動端開發。
2. 熟練運用HTML+CSS特性完成頁面布局。
4. 熟練應用CSS3技術,動畫、彈性盒模型設計。
5. 熟練完成移動端頁面的設計。
6. 熟練運用所學知識仿製任意Web網站。
7. 能綜合運用所學知識完成網頁設計實戰。
知識點:
1、Web前端開發環境,HTML常用標簽,表單元素,Table布局,CSS樣式表,DIV+CSS布局。熟練運用HTML和CSS樣式屬性完成頁面的布局和美化,能夠仿製任意網站的前端頁面實現。
2、CSS3選擇器、偽類、過渡、變換、動畫、字體圖標、彈性盒模型、響應式布局、移動端。熟練運用CSS3來開發網頁、熟練開發移動端,整理網頁開發技巧。
3、預編譯css技術:less、sass基礎知識、以及插件的運用、BootStrap源碼分析。能夠熟練使用 less、sass完成項目開發,深入了解BootStrap。
4、使用HTML、CSS、LESS、SASS等技術完成網頁項目實戰。通過項目掌握第一階段html、css的內容、完成PC端頁面設計和移動端頁面設計。
第二階段:Web後台技術
階段目標:
1. 了解JavaScript的發展歷史、掌握Node環境搭建及npm使用。
2. 熟練掌握JavaScript的基本數據類型和變數的概念。
3. 熟練掌握JavaScript中的運算符使用。
4. 深入理解分之結構語句和循環語句。
5. 熟練使用數組來完成各種練習。
6.熟悉es6的語法、熟練掌握JavaScript面向對象編程。
7.DOM和BOM實戰練習和H5新特性和協議的學習。
知識點:
1、軟體開發流程、演算法、變數、數據類型、分之語句、循環語句、數組和函數。熟練運用JavaScript的知識完成各種練習。
2、JavaScript面向對象基礎、異常處理機制、常見對象api,js的兼容性、ES6新特性。熟練掌握JavaScript面向對象的開發以及掌握es6中的重要內容。
3、BOM操作和DOM操作。熟練使用BOM的各種對象、熟練操作DOM的對象。
4、h5相關api、canvas、ajax、數據模擬、touch事件、mockjs。熟練使用所學知識來完成網站項目開發。
第三階段:資料庫和框架實戰
階段目標:
1. 綜合運用Web前端技術進行頁面布局與美化。
2. 綜合運用Web前端開發框架進行Web系統開發。
3. 熟練掌握Mysql、Mongodb資料庫的發開。
4. 熟練掌握vue.js、webpack、elementui等前端框技術。
5. 熟練運用Node.js開發後台應用程序。
6. 對Restful,Ajax,JSON,開發過程有深入的理解,掌握git的基本技能。
知識點:
1、資料庫知識,範式,MySQL配置,命令,建庫建表,數據的增刪改查,mongodb資料庫。深入理解資料庫管理系統通用知識及MySQL資料庫的使用與管理,為Node.js後台開發打下堅實基礎。
2、模塊系統,函數,路由,全局對象,文件系統,請求處理,Web模塊,Express框架,MySQL資料庫處理,RestfulAPI,文件上傳等。熟練運用Node.js運行環境和後台開發框架完成Web系統的後台開發。
3、vue的組件、生命周期、路由、組件、前端工程化、webpack、elementui框架。Vue.js框架的基本使用有清晰的理解,能夠運用Vue.js完成基礎前端開發、熟練運用Vue.js框架的高級功能完成Web前端開發和組件開發,對MVVM模式有深刻理解。
4、需求分析,資料庫設計,後台開發,使用vue、node完成pc和移動端整站開發。於Node.js+Vue.js+Webpack+Mysql+Mongodb+Git,實現整站項目完整功能並上線發布。
第四階段:移動端和微信實戰
階段目標:
1.熟練掌握React.js框架,熟練使用React.js完成開發。
2.掌握移動端開發原理,理解原生開發和混合開發。
3.熟練使用react-native和Flutter框架完成移動端開發。
4.掌握微信小程序以及了解支付寶小程序的開發。
5.完成大型電商項目開發。
知識點:
1、React面向組件編程、表單數據、組件通信、監聽、聲明周期、路由、Rex基本概念。練使用react完成項目開發、掌握Rex中的非同步解決方案Saga。
2、react-native、開發工具、視圖與渲染、api操作、Flutter環境搭建、路由、ListView組件、網路請求、打包。練掌握react-native和Flutter框架,並分別使用react-native和Flutter分別能開發移動端項目。
3、微信小程序基本介紹、開發工具、視圖與渲染、api操作、支付寶小程序的入門和api學習。掌握微信小程序開發了解支付寶小程序。
4、大型購物網站實戰,整個項目前後端分離開發;整個項目分為四部分:PC端網頁、移動端APP、小程序、後台管理。團隊協作開發,使用git進行版本控制。目期間可以擴展Three.js 、TypeScript。
⑵ Web前端開發一般學習些什麼課程
web前端一般要學HTML、CSS、JavaScript、框架等等知識,下面分享一份詳細的web前端學習路線。
1、PC端頁面製作與動畫特效
學習HTML+CSS搭建網頁、CSS動畫特效、PhotoShop切圖等基礎知識,獲得初級Web前端工程師技能,主要進行PC端網頁製作與樣式設計實現,能夠配合UI設計師進行項目開發。
2、移動端頁面製作與響應式實現
講解移動端布局與設備適配、響應式設計與實現等,獲得移動端頁面適配工程師技能,主要進行移動端網頁的布局製作與樣式設計實現。可以適配各種手機尺寸,並能利用響應式進行移動端與PC端適配。
3、JavaScript與jQuery開發
同HTML5基礎知識一樣,JavaScript開發與jQuery開發是職業晉升的技能包,獲得中級Web開發工程師技能,主要進行頁面行為交互,實現網站常見特效,加輪播圖,選項卡,拖拽效果等,並能配合UI和後端進行項目開發。
4、HTML5框架技術開發
常用的Vue框架開發,React框架開發,Angular框架開發,數據可視化技術。可獲得中級Web前端工程師技能,主要適用框架開發企業項目,實現單頁面應用開發。可以完成復雜的數據交互應用場景,具備獨立開發項目能力。
5、全棧前後端技術開發
Node.JS技術,其他後端技術,如Java或PHP。可獲得Web前端工程師技能,主要進行前後端全棧樣式開發,能獨立完成一個中小型項目的前後台,對於網站開發有著非常熟練的編程能力。
可以從零開始,一步步的掌握前端開發的各項相關技能,終達到企業對初級前端開發工程師、中級前端開發工程師、開發工程師等職位的要求。
學web前端一般在2萬左右,4-6個月左右的時間。應該根據自己的實際需求去實地看一下,先好好試聽之後,再選擇適合自己的。只要努力學到真東西,前途自然不會差。
⑶ uniapp開發微信小程序富文本編輯器(樣式仿騰訊文檔)
照著騰訊文檔小程序開發了微信小程序富文本編輯器組件,這幾天做個整理,如有這個需求可以前往騰訊文檔小程序操作看看實際效果。畢竟參照的是微信自家小程序,無法做到百分百效果,只能按現有開放api盡可能實現。
項目地址:
https://github.com/chellel/wechat-editor-project
uniapp插件市場:
https://ext.dcloud.net.cn/plugin?id=6365
editor富文本編輯器組件官方文檔:
https://developers.weixin.qq.com/miniprogram/dev/component/editor.html
否則會受到小程序css影響。小程序本身editor標簽有css樣式:
editor {
display: block;
position: relative;
box-sizing: border-box;
-webkit-user-select: text;
user-select: text;
outline: 0;
overflow: hidden;
width: 100%;
height: 200px;
min-height: 200px;
}
that.updatePosition(keyboardHeight)
that.editorCtx.scrollIntoView()
在插入目標文字時,將值設為
',可以實現換行
this.editorCtx.insertText({ text: '
' });
參考:請問editor組件控制拉起鍵盤操作支持嗎?
https://developers.weixin.qq.com/community/develop/doc/?highLine=editor%25E6%2598%25BE%25E7%25A4%25BA%25E9%2594%25AE%25E7%259B%2598
小程序技術專員-sanford 2019-09-20
不支持的。iOS無法通過介面拉起鍵盤,必須用戶點擊;安卓則可以。所以,終究是不一致,不行。。
該組件主要為微信editor組件的api調用集成封裝,因此受到的限制同文檔描述一致,即編輯器內支持部分 HTML 標簽和內聯樣式,不支持class和id,支持的標簽詳見: https://developers.weixin.qq.com/miniprogram/dev/component/editor.html 。
不滿足的標簽會被忽略,<div>會被轉行為<p>儲存。
這也是為什麼在做富文本解析時,僅僅用rich-text組件無法有效還原html內容,在解析內容的時候就需要將內容中的HTML標簽轉換成微信小程序所支持的標簽。因此最好方式是引入市場封裝好的富文本解析插件去解析html。
所以,開發者需要自行權衡在做富文本編輯開發時,是否使用微信自帶的editor組件,或者參考騰訊文檔小程序採用webview內嵌網頁等方式去渲染。
小程序富文本編輯器editor初體驗:( https://www.jianshu.com/p/a932639ba7a6 )
如果是微信原生開發,將demo組件中的相關dom元素標簽和api換成微信原生即可。
⑷ 前端開發主要學哪些內容
1、HTML超文本標記性語言:盡量掌握盡可能多的標記或標記對。
(1)必須掌握的標記或標記對包括:<html>、<head>、<title>、<body>、<h1>、<p>、<a>、<img>、<table>、<tr>、<td>、<th>、<form>、<input>、<select>、<option>、<textarea>、<div>、<span>、<script>、<link>等。
4、操作系統
了解Unix和Linux的基本知識,對於開發人員有益無害。
5、網路伺服器
了解Web伺服器,包括對Apache的基本配置,htaccess配置技巧的掌握等。
⑸ 鎬庝箞寮鍙戣窡璧舵倓涓鏍風殑灝忕▼搴
瑕佸紑鍙戜竴涓璺熷井淇′竴鏍風殑灝忕▼搴忥紝闇瑕佽繘琛屼互涓嬫ラわ細
1. 瀛︿範灝忕▼搴忓紑鍙戞妧鏈錛氫簡瑙e皬紼嬪簭鐨勫紑鍙戞嗘灦鍜岀浉鍏蟲妧鏈錛屽寘鎷鍓嶇鐨凥TML銆丆SS鍜孞avaScript錛屼互鍙婂悗絝鐨勬暟鎹鎺ュ彛鍜屾暟鎹搴撶瓑鐭ヨ瘑銆傚彲浠ュ弬鑰冨井淇″畼鏂圭殑灝忕▼搴忓紑鍙戞枃妗e拰鏁欑▼錛屼互鍙婂湪綰跨殑瀛︿範璧勬簮鍜岃嗛戞暀紼嬨
2. 璁捐″拰瑙勫垝灝忕▼搴忓姛鑳斤細紜瀹氫綘鎯寵佸紑鍙戠殑灝忕▼搴忕殑鍔熻兘鍜岀壒鎬э紝鑰冭檻鐢ㄦ埛鐨勯渶奼傚拰浣撻獙錛屽埗瀹氬紑鍙戣″垝鍜岃捐$褲傚彲浠ュ弬鑰冨井淇″皬紼嬪簭甯傚満涓婂凡鏈夌殑綾諱技灝忕▼搴忥紝浜嗚В瀹冧滑鐨勫姛鑳藉拰鐣岄潰璁捐★紝鐒跺悗榪涜屼紭鍖栧拰鍒涙柊銆
3. 寮鍙戝皬紼嬪簭鍓嶇錛氫嬌鐢ㄥ皬紼嬪簭寮鍙戞嗘灦錛堝傚井淇″師鐢熷紑鍙戞嗘灦鎴栧叾浠栧紑婧愭嗘灦錛夎繘琛屽墠絝寮鍙戱紝鍖呮嫭緙栧啓鐣岄潰銆侀昏緫鍜屼氦浜掍唬鐮併傚彲浠ヤ嬌鐢ㄥ紑鍙戝伐鍏瘋繘琛屽疄鏃墮勮堝拰璋冭瘯錛岀『淇濆皬紼嬪簭鐨勬e父榪愯屻
4. 寮鍙戝皬紼嬪簭鍚庣錛氭牴鎹灝忕▼搴忕殑鍔熻兘闇奼傦紝鎼寤哄悗絝鏈嶅姟鍣ㄥ拰鏁版嵁搴擄紝瀹炵幇鏁版嵁瀛樺偍鍜屽勭悊鐨勫姛鑳姐傚彲浠ヤ嬌鐢ㄥ父瑙佺殑鍚庣寮鍙戣璦鍜屾嗘灦錛屽侼ode.js銆丳HP銆丳ython絳夛紝騫剁粨鍚堟暟鎹搴撴妧鏈錛堝侻ySQL銆丮ongoDB絳夛級榪涜屽紑鍙戙
5. 嫻嬭瘯鍜岃皟璇曪細鍦ㄥ紑鍙戣繃紼嬩腑榪涜屾祴璇曞拰璋冭瘯錛岀『淇濆皬紼嬪簭鐨勫悇欏瑰姛鑳芥e父榪愯岋紝淇濊瘉鐢ㄦ埛浣撻獙鍜岀ǔ瀹氭с傚彲浠ヤ嬌鐢ㄦā鎷熸暟鎹榪涜屾祴璇曪紝騫惰繘琛岀湡瀹炵幆澧冧笅鐨勬祴璇曞拰浼樺寲銆
6. 鍙戝竷鍜屾帹騫匡細瀹屾垚寮鍙戝拰嫻嬭瘯鍚庯紝灝嗗皬紼嬪簭鎻愪氦鍒板井淇″皬紼嬪簭騫沖彴榪涜屽℃牳鍜屽彂甯冦傚悓鏃訛紝榪涜岄傚綋鐨勬帹騫挎椿鍔錛屾彁楂樺皬紼嬪簭鐨勬洕鍏夊害鍜岀敤鎴蜂笅杞介噺銆
闇瑕佹敞鎰忕殑鏄錛岃櫧鐒跺彲浠ュ紑鍙戜竴涓璺熷井淇′竴鏍風殑灝忕▼搴忥紝浣嗘槸鍦ㄥ紑鍙戣繃紼嬩腑闇瑕侀伒瀹堢浉鍏崇殑娉曞緥娉曡勫拰騫沖彴瑙勫畾錛岀『淇濆唴瀹圭殑鍚堟硶鎬у拰瀹夊叏鎬с傚悓鏃訛紝鍦ㄨ捐″拰寮鍙戣繃紼嬩腑瑕佹敞閲嶇敤鎴蜂綋楠屽拰鍒涙柊錛屼互鍚稿紩鐢ㄦ埛騫朵笌鍏朵粬絝炰簤瀵規墜鍖哄垎寮鏉ャ
⑹ 用HTML5做一個類似於微信聯系人的一個demo,遇到一點問題
touchMove 要結合使用touchstar,touchend進行判斷的。
沒有做過類似的東西,但是下面的是仿微信圖片瀏覽的代碼,寫了注釋,希望對你有點幫助!
<script>
function imgreset(){
$(this).css3Animate({
width: imgoldw+"px",
//x:0,
//y:0,
time: "0ms",
callback: function () {
pagex1_s=null;pagey1_s=null;pagex2_s=null;pagey2_s=null;pagex1_e=null;pagey1_e=null;
pagex2_e=null;pagey2_e=null;pagexm1_s=null;pageym1_s=null;pagexm1_e=null;pageym1_e=null;
dm=0;dn=0;
imgneww=imgoldw
}
});
}
var imgoldw=320;//獲取圖片寛度
var imglength=$(".imgbox").length;//獲取圖片個數
var demos = document.getElementById("container"),
spirit, startScale, startRotation;
var dm=0,dn=0,imgneww=imgoldw,ismove=false,pic_c=0;
var body_w=$("body").width();
var body_h=$("body").height();
var pagex1_s,pagey1_s,pagex2_s,pagey2_s,pagex1_e,pagey1_e,pagex2_e,pagey2_e,pagexm1_s,pageym1_s,pagexm1_e,pageym1_e;
function touchStart(e) {
//e.stopPropagation();
e.preventDefault();
if(e.touches.length == 1){
ismove=true;
var touch1 = e.touches[0];
pagexm1_s = touch1.pageX;
pageym1_s = touch1.pageY;
}
if (e.touches.length == 2){
var touch1 = e.touches[0];
pagex1_s = touch1.pageX;
pagey1_s = touch1.pageY;
var touch2 = e.touches[1];
pagex2_s = touch2.pageX;
pagey2_s = touch2.pageY;
left = Math.min(pagex1_s, pagex2_s),
top = Math.min(pagey1_s, pagey2_s),
width = Math.abs(pagex1_s - pagex2_s),
height = Math.abs(pagey1_s - pagey2_s);
}
}
function touchMove(e){
//e.stopPropagation();
e.preventDefault();
if (ismove&&e.touches.length == 1){
//單點觸摸
var touch1 = e.touches[0],
pagexm1_e = touch1.pageX,
pageym1_e = touch1.pageY,
//移動了多少
dx=pagexm1_e-pagexm1_s,
dy=pageym1_e-pageym1_s;
//是多少
dm=dx+dm;
dn=dy+dn;
if(imgneww==imgoldw){
$(this).css3Animate({
x:dm,
//y:dn,
time: "0ms",
callback: function () {
}
});
//如果圖未放大,則執行翻頁
}else{
//如果圖片已經被放大,則可以拖動
$(this).css3Animate({
x:dm,
y:dn,
time: "0ms",
callback: function () {
//記錄新位置
}
});
}
pagexm1_s=pagexm1_e,pageym1_s=pageym1_e;
}
if (e.touches.length == 2){
//多點觸摸
var touch1 = e.touches[0];
pagex1_e = touch1.pageX;
pagey1_e = touch1.pageY;
var touch2 = e.touches[1];
pagex2_e = touch2.pageX;
pagey2_e = touch2.pageY;
//計算兩點開始距離 old
var oldx=Math.abs(pagex1_s-pagex2_s),
oldy=Math.abs(pagey1_s-pagey2_s),
//計算兩點開始距離 new
newx=Math.abs(pagex1_e-pagex2_e),
newy=Math.abs(pagey1_e-pagey2_e);
if(oldx>newx&&oldy>newy){
var imgw=$(this).width();//獲取圖片寛度
resizex=oldx-newx;//縮小多少
var resizey=oldy-newy;//縮小多少
if(imgw>imgoldw){
$(this).css3Animate({
width: imgneww-resizex+"px",
x:dm,
y:dn,
time: "0ms",
callback: function () {
}
});
imgneww=imgneww-resizex;
};
}else{
var imgw=$(this).width();//獲取圖片寛度
var resizex=Math.abs(oldx-newx);
var resizey=Math.abs(oldy-newy);//縮小多少
if(imgw<640){
$(this).css3Animate({
width: imgneww+resizex+"px",
x:dm,
y:dn,
time: "0ms",
callback: function () {
}
});
imgneww=imgneww+resizex;
}
}
}
pagex1_s=pagex1_e,pagey1_s=pagey1_e,pagex2_s=pagex2_e,pagey2_s=pagey2_e;
}
function touchEnd(e) {
e.preventDefault();
var imglength=$(".imgbox").length;
var id=parseInt($(this).attr("id").substr(9));
if(ismove&&imgneww==imgoldw&&dm<0&&Math.abs(dm)>body_w/2&&id!=imglength-1){
$.ui.loadDiv('#my_photos_'+(id+1),false,false,'flip');
$(this).css3Animate({
x:0,
time: "0ms",
callback: function () {
dm=0;
}
});
}else if(ismove&&imgneww==imgoldw&&dm>0&&Math.abs(dm)>body_w/2&&id!=0){
$.ui.loadDiv('#my_photos_'+(id-1),false,false,'flip');
$(this).css3Animate({
x:0,
time: "0ms",
callback: function () {
dm=0;
}
});
}else{
if(ismove&&imgneww==imgoldw){
$(this).css3Animate({
x:0,
time: "0ms",
callback: function () {
dm=0;
}
});
}
}
ismove=false;
}
function gestureEnd(e) {
e.preventDefault();
if (!spirit) return;
canvas.removeChild(spirit);
spirit = null;
startScale = null;
startRotation = null;
}
/* $(".imgbox img").bind("touchstart", touchStart, false);
$(".imgbox img").bind("touchmove", touchMove, false);
$(".imgbox img").bind("touchend", touchEnd, false);
$(".imgbox img").bind("gestureend", gestureEnd, false);
$(".imgbox img").bind("tap", imgreset, false);
*/
</script>
⑺ 學了半年前端,基本的html+css+js都會了,有沒有什麼好的項目可以當案例做的。
隨著互聯網的發展,前端的概念也在悄然發生的改變。早些年學完HTML+CSS就可以找到一份很好的工作,後來企業又要求必須會寫特效,所以很多人又開始學jQuery,可是現在又要求必須要會js原生。原來必須要使用JS才能實現的一部分特效,現在HTML5新增的標簽已經可以幫我們實現了,原來要寫一堆jquery做出的動畫,現在用CSS3也能實現了。
學了這么多,夠嗎?顯然不行!!!原來前端普通的DOM操作數據,也逐漸的被像vue.js這樣的MVVM框架所取代,原來要依靠PHP、.NET、JAVA等語言開發後台才能實現數據的前後台交互,現在node.js也出來了,它直接讓JS可以在伺服器端運行了,藉助它的模塊化可以完成所有的功能。從某種意義上來講,搞web開發,後台語言甚至變成了配角,直接寫個介面,剩下的什麼都不用你管,我前端全包了。
所以樓主,學完HTML+CSS+JS能算是萬里長征剛走完了第一步,你要完成PC端的案例簡直是太多了,網站隨例一搜就是一大堆,京東、淘寶你直接模仿製就可以了。下一步要把node.js、vue.js好好學一下,特別是移動端開發、微信小程序,因為你面試的時候基本上沒有人會讓你做個PC頁面,問的都前端特別流程的技術和框架。
希望我的回答能幫到你。