‘壹’ 前端需要学什么
WEB前端我们需要需要掌握以下几种技术:
第一阶段:
Html5+css3,是最起初的,也是很简单的入门,需要掌握html的标签div,span,p,ul,li,input等,需要理解css语法,派生选择器,ID选择器,类选择器,属性选择器,css基本样式:背景,字体,链接,列表等。
第二阶段:
1、熟练使用javascript,jQuery,Echarts,移动端技术,javascript的面向对象。
2、浏览器的兼容问题,需要懂WEB标准,熟练手写xhtml,css3并符合w3c的标准,代码能兼容主流浏览器Firfox,Chrome,Safari,IE等。
3、熟悉一门后台编程语言如:asp,php,jsp等来扩展以后工作的需求
第三阶段:
熟练使用vue框架,node、js,React,Angular,混合式开发/原生开发。
vue:是一套组建用户界面的,渐进式框架,用于搭建表单繁多,且内容需要根据用户的操作进行修改的页面版应用。
Node、js是一个服务器端的,非阻断式i/o的,事件驱动的javascript运行环境,能够使得javascript脱离浏览器运行。
React是Facrbool内部的一个javascript类库,用于创建WEB用户交互界面。
AngularJS是一个JavaScript框架。它可通过<script>标签添加到HTML。
web前端流程
1、根据设计好的效果图(一般是一些psd文件)开始利用Photoshop进行切图,切出需要的图片。
2、使用HTML、CSS、JS等技术开始实现效果图的页面,同时需要和后台人员交流为后台数据留下借口和数据填充的区域等。
3、将最终前端完成的页面交给后台,由后台人员填充后台数据。
‘贰’ 前端页面的插件有哪些
工具类
方便操作对象,数组等的工具库
underscore.js
lo-dash与underscore.js的api基本一致。与underscore比其优势是,效率高;可自定义构建
Sugar在原生对象上增加一些工具方法
functional.js提够了一些Curry的支持
Watch.js监视对象或属性的变化
bacon.js函数式编程,cool
streamjs用流的方式来对数组,对象进行系列操作
异步流程控制
eventproxy朴灵出品
Arbiter.js详细
发布订阅
qPromise风格的
Async.js
mock
Mock.js生成随机数据和mock Ajax 请求
jquery-mockjaxmockajax请求
时间库
moment
datejs
浏览器探测
Bowser探测具体浏览器和版本
ua-parser-js探测具体浏览器和版本,操作系统,设备类型等
调试
console-polyfill能放心的使用 console.log()之类的console方法
log让控制台输出的log有样式
Konsole.js在页面的一个元素里输出log信息详细
uri.jsuri操作
cookie增删改cookie的工具库
director前端路由库详细
BigDecimal.js提高精度的数字操作
JSDoc根据javascript文件中注释的信息,生成API文档详细
hotkeys键盘事件的封装
MD5用 MD5 的方式加密文件的库
浏览器增强类
让一些旧浏览器变牛逼的库
Selectivizr让IE 6-8一些的css3选择器
ieBetter让ie6-8有高级浏览器的特性
ExplorerCanvas让IE8-的浏览器支持canvas
CSS3 Pie让IE6-9支持border-radious,box-shadow,linear-gradient。 可以使用.htc文件(注意Mine type)或.js文件。在用Pie.js时,box-radious的元素有背景色时,不显示背景色。。。
formFive让旧的浏览器支持HTML5表单的一些特性,如 placeholder,autofocus
https://github.com/anselmh/object-fit让浏览器支持object-fit这css规则
HTML5 Cross Browser Polyfills一堆Polyfills
flexibility让旧的 IE 也支持 Flexbox
选择器增强
Lining.js让浏览器实现类似::nth-line(), ::nth-last-line()的效果
未归类
prefixfree用了它,写css时,就不需要加浏览器的前缀了
表单类
jquery-file-upload上传文件组件详细
zTree文件树形视图控件
Treed树编辑器。感觉展示的感觉很像思维导图
FileAPI对文件选择框内的文件的一些处理
表单验证
.Validate详细
jQuery-Validation-Engine
表单元素美化
uniform提供对下拉框,单,复选框,按钮等表单元素的美化
select2多选下拉框
selectivity和unfirom比较类似
DropKick下拉框,单,多选。外观比uniform好
switcheryios7风格的开关组件
nouislider用滚动条来设置/控制(音量等)
range.css美化input[type=range]元素的外观
图片类
holderjs生成占位图片
lazyload
imagesLoaded选取的图片都加载好后执行调回
CSSgram用CSS3的Filter实现Instagram滤镜的库
图标类
Icon Font汇总
SVG做的图标
svgicons
iconic
HYBICON带交互效果。如 hover, click
HTML字符实体图标
http://www.amp-what.com/
transformicons图标点击时,会有一些变换效果。如,加号变成叉号
css3patternscss3 做的可平铺纹理。浏览器兼容性不好。
浏览图片
fancybox弹出查看图片,视屏等等demo
yoxview弹出查看图片,图片尺寸缩放很自然
图片墙
wookmark
UI 框架
WeUI由微信官方设计团队为微信 Web 开发量身设计。
Framework7
UI 组件类
拖拽
dragula支持Draggable,Dropable和Sortable。感觉比jqueryUI的轻量级,好用的样子
angular-draguladragular 官方的 angular 版本
数据可视化(图表)
Echarts网络出品
highcharts功能强大。是收费的。
Plottable.JS基于D3的一个图表库
flot文档不给力
chartJs中文文档demo很漂亮,很清晰。比较轻量级。
ichartJs中国的一个家伙搞的,感觉还不错。
时间选取组件
foundation-datepicker
DatePicker一个简单的日历详细
full calendar支持脱放的方式来改变待办事宜的时间
Simple Events Calendar外观很喜欢。收费 5$
jQuery ui datepicker经典,不是很好看
pickadate轻量级,手机友好的,漂亮。但貌似只能在弹出层中显示,而没有下拉这种方式显示。
zebra-datepicker可配置性很强。但貌似只能在弹出在右上方。。。
bootstrap-datepickerbootstrap风格。
dateRangePicker选取时间段。bootstrap风格。该组件依赖Twitter Bootstrap, Moment.js和jQuery.
自定义滚动条
perfect scrollbar轻量级的滚动条。外观与mac上chrome的滚动条一样。
iscroll在移动设备上用不错
加载(Loding)效果
CSS SpinnersCSS做的
Loaders.cssCSS做的
表格组件
jsGridData Grid。详细
backgrid基于Backbone.js的DataGrid
excellentexport把表格的内容生成excel。兼容 Firefox, Chrome, IE6+
datatables表格可交互(对内容进行排序,删除等)
handsontable生成Excel外观的数据
JSpreadsheets表格数据的组件库
选取颜色
Spectrum
分享到SNS
JiaThis生成分享代码。
编辑器
ace代码编辑器,可以用来做demo演示
ckeditor
ueditor网络做的
tinymce对html内容进行实时的编辑
summernote在移动设备上用不错
通知组件
notie.js
HTML5播放器
jwplayer被大量网站使用
html5media简单的h5player,轻量级
jplayer功能强太,可换肤
展示
Impress.js各种旋转,和奇特的体验
fullPage全屏显示。用滚轮来翻页详细
zepto.fullpage专注于移动端的fullPage.js,依赖Zepto
pagePiling和fullPage类似
turn.js做一本书,带漂亮的翻页的效果
幻灯
slidesjs挺好用的,只是那幻灯导航的CSS都要自己写,呵呵详细
iSlider无任何插件依赖的手机平台javascript滑动组件详细
bgstretcher全屏幻灯,会随着页面大小的变化而变化。
Swiper开源、免费、强大的移动端触摸滑动插件Swiper中文网
coin-slider兼容IE6。蛮好的~。不过其切换方式是一块块的。不能配置切换方式。。。
wowslider幻灯切换时各种很炫的效果。收费。
cycle2普通的幻灯,竟然不支持垂直滚动。。。
jcarousel普通的幻灯,不兼容IE6
reveal3d滚动。做ppt相当不错
nodePPT国人做的,做ppt也相当不错。有些方面比 reveal做的还好。但生成导出的html有些问题
roundabout3d切换,看的后面图片的边
弹出框
Magnific-Popup兼容PC,Mobile。还不错,有5k+的star
layer国人开发的,兼容ie6+。不喜欢其调用方式。
动画效果
mixitup用漂亮的动画效果来完成排序和筛选
jQuery.Marquee跑马灯效果
quickflip卡片翻转效果
卡片翻转效果2兼容性可以。写的比较简单:1,只支持x方向翻转 2,类名都是规定好的 3,只能被调用一次。 需要改写一下。我的改进版见这里
TheaterJS模拟两个人在屏幕上对话
midnight.js文字颜色随着背景变,屌炸了
color-animationjquery的颜色渐变动画插件。jquery的动画不支持颜色值的变化。改库提供了这个支持。
transit对元素进行css的变换
tagcanvas3D标签云效果详细
iconate图片切换动画
Snap.js左/右侧导航的出现效果
CSS shake抖动动画
ClickSpark.js点击后的一些酷炫的效果
视觉差插件
scrollorama比较简单
superscrollorama能做的效果更多,但要用第三方Tween的库,使用起来比较复杂。
scrolldeck
flash
swfobj能够自动检测PC、Mac机器上各种主流浏览器对Flash插件的支持情况。它使得插入Flash媒体资源尽量简捷、安全。而且它是非常符合搜索引擎优化的原则的。此外,它能够避免您的HTML、XHTML中出现object、embed等非标准标签,从而符合更加标准。详细
抽奖
wScratchPad刮刮卡刮奖效果
jqueryrotate旋转插件。可以用来做转盘抽奖效果
Intro.js用来介绍网站的功能很不错。也可以做新手引导。
blockUILolding组件。
simple-hint提示信息。用css做的。兼容性IE 9+。
dotdotdot文字溢出时,添加在文字末尾加省略号
jQuery-menu-aim二级菜单的切换如Amazon主页上一样迅速
AnythingZoomer放大镜功能
美化/高亮语法代码
google-code-prettify
DlHighlight仅支持JavaScript、CSS、XML、HTML 这4语法高亮
please按要求随机舒服的颜色
Awesomplete输入的智能提示,自动补全
proTip提示。感觉比 Bootstrap 的 tip 好
Hammerjs手势库。封装了 Swipe, Tap, Pinch, Pan等手势
用户体验增强类
动画
velocity提高Jquery动画的性能。以及颜色动画之类的新特性。
Snap.svg操作 SVG 的 JS 库。号称 SVG 的 jQuery。demo
walkway以动画的方式,渐渐地画出 SVG 的路径。
SVG
测试
Mocha
Chai
Should
Snoion
DeviceMock.jsmock 设备。
其他类
ZeroClipboard将内容复制到剪切板兼容主流浏览器的解决方案详细
html2canvashtml转化成canvas,可以用来做截图。详细
Ink响应式html邮件框架
性能测试
抓取,解析RSS内容(不能跨域,所以后台要做代理,所谓的解析Rss其实就是解析xml)
jFeed
jRss简单版的jFeed
scriptcam与摄像头交互
cylon.js机器人框架,支持35个平台
Masonry一个瀑布流框架
devices.css移动设备边框的外观。做原型的时候用不错。
Bootbox.js对bootstrap的弹出框做的一些封装
免费皮肤
AdminLTE
Bootstrap相关类
JS Plugins仓库
jQuery Cards高质量的 jQuery 插件网站
jster
node moles
npmrankSort npm packages by page rank
YOU MIGHT NOT NEED JQUERY PLUGINS不依赖 jQuery 的 js 插件。
awesome-nodejs
Libraries.io各种语言的库
OniUI去哪儿网做的一套基于Avalon的框架
常用的移动端框架
zepto.js
语法与jquery几乎一样,会jquery基本会zepto~
最新版本已经更新到1.16
iscroll.js
解决页面不支持弹性滚动,不支持fixed引起的问题~
实现下拉刷新,滑屏,缩放等功能~
最新版本已经更新到5.0
underscore.js
笔者没用过,不过听说好用,推荐给大家~
该库提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象。
最新版本已经更新到1.8.2
滑屏框架
适合上下滑屏、左右滑屏等滑屏切换页面的效果
slip.js
iSlider.js
fullpage.js
swiper.js
flex布局
flex布局目前可使用在移动中,并非所有的语法都全兼容,效果良好~
‘叁’ 前端几种跳转方式
1.onclick跳转
设置window的location.href属性
onclick="window.location.href='URL'"
onclick="location='URL'"
2.调用window的open方法
onclick="window.open('URL','_blank');" // 在新窗口打开
onclick="window.open('URL','_self');" // 覆盖当前页
3.a标签跳转
<a href="URL" target="_blank">Preface</a> // 在新窗口打开
<a href="URL" target="_self">Preface</a> // 覆盖当前页,target属性默认为_self,此处可省略
‘肆’ 动态修改css中:root定义的变量-换肤、主题色
前端中有用到需要设置主题颜色,根据用户喜欢实现换肤的可以使用css中:root定义变量的方式,或者使用动态切换引入的外部css样式表实现,这里着重记录下动态修改css中:root定义的变量实现换肤:
这里定义变量必须是以'--'开头,然后其他页面的样式表就可以直接引用这个变量了
至此就完成了动态修改:root变量实现换肤了,具体的应用场景中我们应该是在页面上操作,选中需要的肤色然后修改:root定义的变量值,考虑到浏览器刷新会重置原始状态的值,这里要结合本地存储方式记住选中的肤色,具体的实现参考:
‘伍’ Android 换肤- 基于databing的一种思路
说实话,这篇文章的思路呢,其实是前段时间做前端开发的时候,写网页,用Vue嘛,数据驱动的方式,不过大部分人应该都知道这个东西了!~ 以前换肤的实现呢,要么就是换主题,要么呢,就是要么设置tag或者自定义一些规则,反正网上资料很多了,我也不用多说~然后呢,我看到那个Vue这个东西的时候呢,有个demo vue-element-admin ,这里面有个换肤的实现方式,然后看到那个的时候,我一下子就想到了,android里面不是也有个api是类似的么,虽然好久没写android了,不过还是回来翻了下。。。
ok,下面来看实现方式~
先来看下基本页面(随便画的,啥都没得,反正思路嘛。。。)
o(︶︿︶)o 唉,看出来了,真的随便画的~~~
接下来说下思路,换肤的原理就是,用户选择皮肤,然后我们整个app,切换皮肤,切换成功之后,保存换肤状态。
这里面的难点就是,换肤之后,页面皮肤颜色改变,其实,就是一个一个view手动设置而已,比如说什么颜色啊之类的,对吧,其实就是这么一回事,仔细想想,好简单~。。。
然后,我们现在呢,我不是说的我的思路是vue这个数据驱动的框架么,然后引申到android来,就是databing这个api了,加入说,我们需要换肤的view啊,比如说这个view的颜色,我们只需要把这个view的颜色,使用databing绑定不就行了吗?
类似这样~
这样子,我们在进入我们的activity啊fragment啊的时候,检测一次我们的换肤状态(一般保存到sharepreference里等等),看是否有换肤,有的话,直接把这个换肤的状态设置到数据里面去不就可以了么?
设置的话就很简单啦,一个很简单的例子
好吧,因为我项目里写的是个adapter,所以这里这样设置的。
一般的话,页面有改变,直接binding.setSkinAttr(skinAttr); 就行了,了解databing的同学应该很熟悉,不知道的去看看也了解啦~
这样整个页面的样式使用的都是databing绑定的值,那些view需要就给那些页面的属性设置为上面textview的样一样就行了。
这样我们在页面开始的时候,只需要获取一次保存的值,设置到我们页面绑定的属性类啊之类的上面就行了。其实嘛,这就是一个思路,给大家扩展下思路~
其实项目里面应用了databing的同学,可以考虑下这种方式,毕竟简单嘛,实现方式也很简单。也不需要修改系统源码啊之类的,可拓展行也很强。好吧,就提供下思路,原谅我是在看直播的时候抽空写的,可能不够详细~
下面发下项目地址,可以去看看,保存状态啊之类的都没做,有兴趣的同学可以自行扩展,说的提供思路哈~
项目地址
‘陆’ web前端开发都包括哪些技术
css,学好CSS是网页外观的重要一点,CSS可以帮助把网页外观做得更加美观。
div布局: DIV元素是用来为HTML文档内大块的内容提供结构和背景的元素。
学习JavaScript的基本语法,以及如何使用。JavaScript编程将会提高开发人员的个人技能。
了解Unix和Linux的基本知识虽然这两点很基础,但是开发人员了解Unix和Linux的基本知识是有益无害的。
html5+css3:移动端的网页制作。在移动设备开发HTML5应用只有两种方法,要不就是全使用HTML5的语法,要不就是仅使用JavaScript引擎,现在也是前端的一个趋势。
一些框架的应用:angular.js,node.js,bootsttap等框架的应用。
了解Web服务器对Apache的基本配置,并且掌握htaccess配置技巧
web前端开发技术,还需要学习一些seo优化技术,因为前端是经常会和网站接触的。
‘柒’ 前端项目中常用的几种方法
新建公共方法js文件(例:public.js)
1、校验手机号码
2、校验是否为空
3、判断字符串长度,如果是汉字则为1
4、获取url中参数的值
5、校验邮箱
6、返回格式化日期
7、返回格式化日期时间
8、数组去重(例:[1,2,3,1,12,3])
9、根据key排序(例:[{id: 1, value: 'asaa'}])
10、根据生日计算年龄
11、根据身份证计算年龄
12、计算两时间差(分钟)
13、生成指定数值随机数
14、检测当前环境是否为手机
15、存储Cookie
16、删除Cookie
17、获取指定名称Cookie
18、获取当前日期前后几天日期
‘捌’ 前端实现扇形一共有几种方法
3种。
代码实现
方法1. border-radius
方法2. canvas + arc
方法3. svg+path
自定义角度、自定义半径、自定义起始坐标等,封装一个组件,通过传递一个角度画出对应角度的扇形。
‘玖’ 前端切换主题颜色的几种思路
如果主题提前配置好是固定的:
1.采用配置不同theme的css文件,使用scss+替换body的class命名空间进行样式覆盖
setting.scss
common.scss
最后形成两个主题文件后,修改body的class就可达到切换主题的目的
2.引用不同的link文件,与上述同理先形成css文件,通过动态改变link引用达到切换主题目的
如果主题不固定的,可借用webpack插件:webpack-theme-color-replacer实现:
vue-cli3配置
app-config.js文件
配置babel.config.js
在utils文件中定义一个themeColorClient.js 用于初始化主题色和记录主题色
除了修改elementUI主题色之外,我们还需要配置其他自己写的样式,需要用到element ui中定义的一些变量
可通过引用@import "../../../node_moles/element-ui/packages/theme-chalk/src/common/var.scss"; 获得element-ui中的变量,并使用,这样可达到一起切换主题效果