回顾我眼里的前端十年
一晃时间过得真快,不知不觉已经毕业10年了,这十年虽然我一直在从事着后台的开发,但是也接触和从事过前端的开发工作,那么接下来就让我回顾下我眼里的前端十年。
记得那个时候很多公司招聘前端的要求都有一条是要兼容各个浏览器,这里特别指的是IE6,是的,你没有听错,那个时候虽然一部分浏览器已经升级到IE8,但是仍然有大量浏览器是IE6,IE7等,因此,作为前端浏览器的兼容性一定是必须要过关的,否则不同浏览器显示样式不一致,你就等着被领导训斥吧。
那个时候,如果你说你会jQuery,那么你一定会得到优先录用,那个时候几乎所有网站都采用jQuery,那个时候几乎没有第二个前端框架,所有的插件都是基于jQuery开发的,可以说那个时候就是jQuery的黄金年代。
搭配着Ajax和jQuery,那个时候前端开发似乎也很轻松,你需要做的就是处理一些后台发送过来的数据,然后在界面上动态展示就可以了。
jquery
记得那个时候,写过很多JS插件,记得当时给公司写过一个导航插件,一个可以通过按键进行导航,就是基于jQuery开发的,可以说那个时候的JS插件大部分都是基于jQuery开发的,因为jQuery实在太好用了,可是,谁也想不到多年以后,jQuery已经淡出了历史舞台,好多年轻人都没有听过它,更不知道那句响彻时代的口号,write less, do more。
那个时候,并没有很多开源UI库,很多时候,都是各个公司前端部门开发出自己公司的UI库。
那个时候,bootstrap才刚刚诞生,而我在那个时候根本就没有听过它,至于css处理器,也是没有的,我们只是使用YUI进行css的压缩。
那个时候我们都会定义一些基类,比如.pl5 .pr10等等,这样在写前端页面的时候,直接拿来使用非常的方便,后来在接触到bootstrap之后,才发现原来它们居然是异曲同工。不知道当时的前端领导是否是借鉴了bootstrap,总之在我看来那个前端领导是个非常出色的前端工程师。
有一段时间css3动画非常流行,很多网站都采用了css3动画效果,似乎如果哪个网站没有采用,它就会被大家认为很low。
那个时候很流行将JS的工作交给css来做,谁让css那么优秀呢…
css3可以说对于前端是一个巨大的改变,盒子模型的诞生彻底改变了网页排版布局,自从有了css3之后,人们的网页布局变得异常丰富,而这也很考验前端开发者的能力。
css3的媒体查询功能,让自适应网站得到了发展,虽然后来很多公司都抛弃了它。
在经历了众多群雄分割的时代之后,webpack开始一统江湖,也就是从这个时候,前端开始步入了模块化时代。
在这个时候,人们发现前端开发也可以进行模块化管理,而有了webpack,人们可以非常方便管理前端资源。
webpack
这个时候,有个关键性的JS标准诞生了,它就是跨时代的ES6。可以说自从有了ES6,JS就进入了飞速发展时代,然后各种新技术就像雨后春笋一样,JS进入了它的黄金年代。
天下大事,分久必合,合久必分。
随着时间的推移,前端框架来到了三足鼎立的时代,React,Vue,Angular成为了最热门的三大框架,如果这三个框架你一个都不会,那么很抱歉,你是找不到前端工作的。
对于一些JS的基础你可以稍微不扎实,但是如果你不会三大框架之一,那么想进入大厂做前端,你一点机会都没有。
react不停地发展,诞生了react native项目,目前react不仅可以做前端,它还可以做移动应用。
reactive native
vue亦是如此,从vue2到vue3,vue迎来巨大的变化,伴随着vite的发布,vite2+vue3成为了很火的组合。
就在我沉浸在掌握了三大框架的使用和一些皮毛的喜悦之中的时候,svelte又诞生了,它的诞生似乎是在告诉我们,这是一个激流勇进的时代,这是一个逆水行舟的时代,你只有不断地前行,你才能成功活下去,你才能走到最后。
十年弹指一挥间,往事历历在目。
很多时候,有些事情我们可能记不起来了,但是我们写过的代码我们都会有印象。我们犯过的错误都会牢记在心里。
有多少个日夜我们只是因为没有清理缓存,而导致一遍遍找寻不存在的bug。
有多少个日夜我们只是因为没有保存文件,而导致我们看不到期望的效果。
年轻的我们很幼稚,犯过很多幼稚的错误,但是庆幸我们年轻。
未来的前端还会带来怎样的变化我们不得而知,我只知道我会一直陪着它走下去,知道我生命的尽头。
Jquery插件(常用的插件库)
作者:一生的风景
转发链接:https://www.cnblogs.com/2979100039-qq-con/p/12775777.html
随着Jquery知识点的结束,我也开始接触到框架来了。
开始的时候,总是听到插件和框架等词,我疑惑框架和插件是啥有啥区别??
插件可以说有无数种,在网页中任何一种功能都可以被叫做插件,单独提取出来,可以供别人使用,而框架是一个超大好的的插件,它将各种方法融合成一体,使用者可以使用它来构造不同的功能。插件则专注于一种,往往只有一种功能 。
打个比方比如前面学习的jquery,jquery就是一个框架,在jquery插件库里http://www.jq22.com/有数不胜数的插件,这些插件绝大部分基于jq框架来编写。
理解完插件和框架的区别,下面来写一写这几天初步学习的插件库
1.jquery 对于我而言肯定是一个熟悉的框架了
官网网址:https://jquery.com/
插件库:http://www.jq22.com/
这里简单的介绍一下jquery :jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。
2.Select2 官网网址:https://select2.org/
3.Fullpage 官网网址:https://alvarotrigo.com/fullPage/#page1
4.lazyload 官网网址:https://appelsiini.net/projects/lazyload/
5.Swiper 官网网址:https://www.swiper.com.cn/
6.nice-validator 官网网址 :https://validator.niceue.com/docs/getting-started.html
以上提及的都是插件库,每一个有着不同的功能,jquery在这里我就不在赘述了。我就从Select2开始写
select2是一款基于jquery的功能丰富的下拉列表插件。这就说明了使用select2必须要有jquery依赖,就是要先导入jquery库,然后在导入select2插件库,然后这是一款关于下拉列表的插件。
使用方法:首先去下载压缩包文件 下载地址:https://codeload.github.com/select2/select2/zip/develop下载完成解压后在文件中我们需要找到相关的js文件和css文件,我们所需要的的就是这两个文件:在dist文件夹下有css和js,js有.js文件和min.js文件,css也是一样的。如下图所示
min.js是压缩版,没有逗号空格等等,体积小传输效率快,但可读性较差可以自行想象一下js代码就一行的场景 .js是没压缩的俗称开发版,可读性较好,易于debug调试和更改;但是体积相比较而言大一些,效率低。我采用压缩版的我不改bugQAQ 这段话或许就解决了心中的疑问
我们将css和js文件复制到我们的项目中就可以开始使用这个插件了。
这个是一个案例效果图接下来就根据这个案例来编写。
首先一点也是重中之重,导入css和js文件,jquery插件库优先导入,js cs就是我们上面复制到项目的文件,如下
在body里面写上一个普通的下拉列表:
我把js注释一下看看效果如何:
这个与和我们的效果图有着很大的区别,如何使用这个插件呢,我们不妨看看文档(虽然全是英文)
在基本语法上有着这样的语句(我们把他定义到我们的案例中去):.js-example-basic-multiple是一个选择器
在案例中我们如下编写 (效果如右):
这就是select2的威力,我们就使用了一行js代码就将一个普通的下拉列表变成了这样的的一个视觉效果不错的下拉列表(宽度可以修改,select2内置了很多的属性可以查看文档)。
例如给下拉列表设置宽度只需要如下写(使用大括号编写属性,用逗号分隔每个属性)
在select2文档的第三项中的Options里面有一张配置表里面涵盖了select2所有的属性(英文差的我看的有点吃力)
案例中简单的写了两个属性
插件的出现就是为了简单化代码,让我们少些了很多代码。使用起来方便简洁,就是这样select2的简单案列完成了,select2专注于选框,很多属性,可以去文档一一查阅我这里的介绍就结束了。
翻译过来就是 全屏的意思,我想已经猜出来了,这是一款全屏的插件,整个页面简洁大方,整个屏幕就是一张页面,它的官网就是一个很好的实 例 https://alvarotrigo.com/fullPage/#page1。这样的页面展示很受人喜欢,我相信大部分人都曾见过。
使用方法 同样下载压缩提取js 、css文件 下载地址 https://codeload.github.com/alvarotrigo/fullPage.js/zip/master
这个官网有一点优势emmmmmm他有中文模式 左上角可以选择
将css js复制进自己的项目里面引入js css 同样注意的依赖jquery优先导入jquery库如下:
我们可以查看文档编写(文档中有这样的一句话也就是在html文件中必须有着个声明,所以复制代码是要仔细不要复制掉了)
将这段代码复制到body里开始编写页面 在div的class值,section 以及后面的slide是不能更改的,我们必须按照fillpage的规则来 但最外层div的id可以直接设置,用于js代码中的选择
在js中如下编写(首先我们就用上了sectionsColor属性 定义背景颜色,一一对应)
当想定义横向切换时,这时候slide就登场了 ,将下面代码嵌套到<div class = \”section\”></div>中
它将会产生一个横向轮播图 注意 slide section 不可以更改 如下图所写:
效果如下:
当然插件也并不是万能的,fullpage无法设置字体大小所以需要自己定义大小 下面是自定义样式
在fullpage文档上有着很多属性(往下翻的话有对这些属性一 一的解释)
在我的案列中写了几个案例js代码如下:
文档的属性还算写的清晰,所以可以一点点编写 这一节的效果图不好截我把代码结构写上
这样子fullpage的案列就完结了,跟官网页面相似可以试着运行一下子。
lazyload 译为延迟加载, 又叫懒加载 在这个流量的时代,懒加载的出现是非常nice的,它为用户节省流量的消耗,提高性能,当一个高清图片网站一张页面几十张甚至上百张图片时,没有懒加载,它将会将所有的图片都加载出来,这就导致流量的浪费,降低性能,影响了用户的体验,而懒加载的作用是当用户看到这张图片时,它才开始加载出来,这样子就节省了大量的流量,而且优化了性能,提高了用户体验。
使用方法和上面一样下载lazyload插件包:https://codeload.github.com/tuupola/lazyload/zip/2.x
使用方法很简单,因为它只有一个功能就是延迟加载,所以我就直接上代码了 (注意在下载文件中找到对应的css,js文件复制到自己的项目中) lazyload没有css文件
我使用了12张图片然后js就一句,就可以实现懒加载功能
要为每一张图片添加class = “lazyload” ,且不能使用src 必须使用data-src 下面就来写一写怎么看两者的区别
普通加载:
懒加载:
懒加载的用法简单,但它存在的意义不凡,有些框架也会内置懒加载功能 列如上面介绍的fullpage插件
所以,懒加载的使用结束,或许现在感觉不它的作用,但是以后的编程日子里我想我百分百会和它再次的碰面。
Swiper 译为猛击者,确实在视觉上它的确很吸引我,首先它是一款触摸滑动插件 它与fullpage相似又有着各自的特点。
用swiper来做轮播 ,导航我想是很好的选择 swiper不依赖jq所以当项目中不需要jq时可以不用到jquery库
同样先下载swiper的包:https://www.swiper.com.cn/download/swiper-5.3.7.zip 在文件中找到对应的js css文件,复制到自己的项目然后导入如下:
先上一张效果图:
如图所示一款很炫酷的轮播图可以说swiper的中文文档非常的nice,思路清晰。就是emmmm属性有点多一时半会看完我现在想着,根据以上的插件库案列
这个插件的使用就应该不用我来再做赘述了,我就直接粘贴代码代码如下:
不管是什么插件或者框架,它的使用方法都万变不离其宗。相似是 他们的共同点,更何况swiper的文档看着这么的舒服
nice-validator 插件是一款比关于验证表单的插件,当用户注册时,来判断注册手机号码是否合法,是否为空,密码与确认密码是否相等,邮箱是否合法等等等等。
同样先下载:https://codeload.github.com/niceue/nice-validator/zip/master 复制对应的css js文件 到项目并导入,如下:
以案列为准,由于没有css我直接手写了有个简单的css样式。
当然html的表单也是手写对于样式,id class的名称这些,这款插件与其他的不同,可以自己定义:
js写法:无论那样的写法他实现的功能是一样的
这些属性可以看看文档里面的介绍(我简单的截取两张,更多属性一步官网 https://validator.niceue.com/docs/getting-started.html)
自定义规则
内置规则
这款插件的属性还是蛮多的 在常用规则整理中有着常用的规则。
对了这里有一个绕的地方(我单独截出来反正我看着的时候看半天)
就这样,这款插件有没有过多的介绍了。有很多坑和细节还得自己去真正用的时候去看
以上的五款插件全部介绍完成,案列源码下载:https://files.cnblogs.com/files/2979100039-qq-con/jqy_example_10.zip
我想各位小伙伴们看完这篇文章,也或多或少的对插件或者框架的使用有些了解了,但要明白一件事纸上得来终觉浅的道理,
有心人想要去学习一样东西,他就不止是想还要做。所以勤加练习是学好编程的不灭准则。
学习中,有地方错误还请指正。
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
《》
作者:一生的风景
转发链接:https://www.cnblogs.com/2979100039-qq-con/p/12775777.html
了解jquery这一篇够了
使用javascript开发过程中,有许多的缺点:
- 查找元素的方法单一,麻烦。
- 遍历数组很麻烦,通常要嵌套一大堆的for循环。
- 有兼容性问题。
- 想要实现简单的动画效果,也很麻烦
- 代码冗余。
jQuery的官网 http://jquery.com/jQuery就是一个js库,使用jQuery的话,会比使用JavaScript更简单。
What is jQuery?
js库:把一些常用到的方法写到一个单独的js文件,使用的时候直接去引用这js文件就可以了。(animate.js、common.js)
我们知道了,jQuery其实就是一个js文件,里面封装了一大堆的方法方便我们的开发,其实就是一个加强版的common.js,因此我们学习jQuery,其实就是学习jQuery这个js文件中封装的一大堆方法。
官网下载地址:http://jquery.com/download/jQuery版本有很多,分为1.x 2.x 3.x1.x和2.x版本jquery都不再更新版本了,现在只更新3.x版本。
大版本分类:
- 1.x版本:能够兼容IE678浏览器
- 2.x版本:不能兼容IE678浏览器
- 3.x版本:不能兼容IE678浏览器,更加的精简(在国内不流行,因为国内使用jQuery的主要目的就是兼容IE678)
关于压缩版和未压缩版:
- jquery-1.12.4.min.js:压缩版本,适用于生产环境,因为文件比较小,去除了注释、换行、空格等东西,但是基本没有颗阅读性。
- jquery-1.12.4.js:未压缩版本,适用于学习与开发环境,源码清晰,易阅读。
使用jQuery的三个步骤:
- 引入jQuery文件
- 入口函数
- 功能实现
关于jQuery的入口函数:
jQuery入口函数与js入口函数的对比:
- JavaScript的入口函数要等到页面中所有资源(包括图片、文件)加载完成才开始执行。
- jQuery的入口函数只会等待文档树加载完成就开始执行,并不会等待图片、文件的加载。
- DOM对象:使用JavaScript中的方法获取页面中的元素返回的对象就是dom对象。
- jQuery对象:jquery对象就是使用jquery的方法获取页面中的元素返回的对象就是jQuery对象。
- jQuery对象其实就是DOM对象的包装集包装了DOM对象的集合(伪数组)
- DOM对象与jQuery对象的方法不能混用。
DOM对象转换成jQuery对象:【联想记忆:花钱】
jQuery对象转换成DOM对象:
- jQuery选择器是jQuery为我们提供的一组方法,让我们更加方便的获取到页面中的元素。注意:jQuery选择器返回的是jQuery对象。
- jQuery选择器有很多,基本兼容了CSS1到CSS3所有的选择器,并且jQuery还添加了很多扩展性的选择器。【查看jQuery文档】
- jQuery选择器虽然很多,但是选择器之间可以相互替代,就是说获取一个元素,你会有很多种方法获取到。所以我们平时真正能用到的只是少数的最常用的选择器。
总结:跟css的选择器用法一模一样。
总结:跟css的选择器用法一模一样。
总结:这类选择器都带冒号
总结:筛选选择器的功能与过滤选择器有点类似,但是用法不一样,筛选选择器主要是方法。
【案例:下拉菜单】【案例:突出展示】【案例:手风琴】【案例:淘宝精品】
对应案例:案例-《tab切换》
对应案例:案例-《美女相册》
对应案例:案例-《表格全选》
对应案例:案例-《下拉菜单》
对应案例:案例-《轮播图》
对应案例:案例-《手风琴菜单》
对应案例:案例-《音乐导航》对应案例:案例-《工具栏》
【案例-《弹幕》】
val方法用于设置和获取表单元素的值,例如input、textarea的值
html方法相当于innerHTML text方法相当于innerText
区别:html方法会识别html标签,text方法会那内容直接当成字符串,并不会识别html标签。
设置或者获取高度
获取网页的可视区宽高
设置或者获取垂直滚动条的位置
offset方法获取元素距离document的位置,position方法获取的是元素距离有定位的父元素的位置。
JavaScript中已经学习过了事件,但是jQuery对JavaScript事件进行了封装,增加并扩展了事件处理机制。jQuery不仅提供了更加优雅的事件处理语法,而且极大的增强了事件的处理能力。
简单事件绑定>>bind事件绑定>>delegate事件绑定>>on事件绑定(推荐)
简单事件注册
缺点:不能同时注册多个事件
bind方式注册事件
缺点:不支持动态事件绑定
delegate注册委托事件
缺点:只能注册委托事件,因此注册时间需要记得方法太多了
on注册事件
jQuery1.7之后,jQuery用on统一了所有事件的处理方法。
最现代的方式,兼容zepto(移动端类似jQuery的一个库),强烈建议使用。
on注册简单事件
on注册委托事件
on注册事件的语法:
unbind方式(不用)
undelegate方式(不用)
off方式(推荐)
jQuery事件对象其实就是js事件对象的一个封装,处理了兼容性。
通常情况下,只有设置操作才能把链式编程延续下去。因为获取操作的时候,会返回获取到的相应的值,无法返回 jQuery对象。
【案例:五角星评分案例.html】
jQuery的隐式迭代会对所有的DOM对象设置相同的值,但是如果我们需要给每一个对象设置不同的值的时候,就需要自己进行迭代了。
作用:遍历jQuery对象集合,为每个匹配的元素执行一个函数
【案例:不同的透明度.html】
jQuery使用作为标示符,但是如果与其他框架中的作为标示符,但是如果与其他框架中的冲突时,jQuery可以释放$符的控制权.
插件:jquery不可能包含所有的功能,我们可以通过插件扩展jquery的功能。
jQuery有着丰富的插件,使用这些插件能给jQuery提供一些额外的功能。
- jquery.color.js
animate不支持颜色的渐变,但是使用了jquery.color.js后,就可以支持颜色的渐变了。
使用插件的步骤
- jquery.lazyload.js
懒加载插件
jQueryUI专指由jQuery官方维护的UI方向的插件。
官方API:http://api.jqueryui.com/category/all/
其他教程:jQueryUI教程
基本使用:
使用jquery.ui.js手风琴菜单
原理:jquery插件其实说白了就是给jquery对象增加一个新的方法,让jquery对象拥有某一个功能。
更多内容:
jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。JQuery封装了JavaScript常用的功能代码,提供了一套易于使用的API,可以跨多种浏览器工作,使HTML文档的遍历和操作、事件处理、动画设计和Ajax交互等操作变得更加简单。
现在的「新人」依然可以学习 jQuery 的思想,因为以「新人」的水平,直接理解 Vue / React 的思想难度较大,jQuery 是一个很不错的中间过渡
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。