⑴ 前端开发必学的技术有哪些
这里给大家整理了一份系统全面的前端学习路线,主要掌握以下技术:
第一阶段:专业核心基础
阶段目标:
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页面,问的都前端特别流程的技术和框架。
希望我的回答能帮到你。