先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
正文
仅仅会插入图表也是不够的,通过修改里面的配置项里面的属性来达到项目需求,直接去百度更方便,但是呢我们需要学会去查找文档echarts官网-文档-配置项手册
上面这个小例子就是为了让大家对echarts不迷茫,基本使用要会哟
三、知识点梳理
=======
再回到我们的项目上面,从项目效果可以看出里面的参数很多,如果都去重新定义一个新的变量的话,代码很多容易混淆,占用的空间也很大,这里呢 我们就使用立即执行函数
立即执行函数:
声明一个函数,并马上调用这个匿名函数就叫做立即执行函数;即立即执行函数是定义函数以后立即执行该函数。
()()
里面定义的参数相对于是局部变量,即使变量名相同,也不会有影响的,所以就放心使用吧
项目里面每个盒子的边框不再是中规中矩的border了,之所以看起来很高级,那是因为边框里面有图片哟,大家不要觉得很难,因为它真的很简单
边框图片
边框效果图:
首先来了解下边框图片需要掌握的属性
属性 | 说明 |
border-image-source | 用在边框的图片的路径 |
border-image-slice | 图片边框内向偏移 裁剪的尺寸,一定不加单位,上右下左顺序进行裁剪 |
border-image-width | 图片边框的宽度(需要加单位)注意:不是边框的宽度而是边框图片的宽度 |
border-image-repeat | 图片边框是否平铺(repeat)、铺满(round)、或拉伸(stretch)默认拉伸 |
我们来看看border-image-repeat属性值不同的效果
分割多少,就以四个角图片的完整度来哟
很多人会疑惑🤔 为什么还要在box盒子里面放一个inner盒子呢,注意看由于盒子模型的原因 如果直接写文字,文字的书写位置就达不到我们想要的这种效果,所以通过在边框里面再添加一个子盒子,利用定位 ,里面的内容就可以改变位置啦,快去试一试吧
字体图标
这里为什么要将字体图标呢,以前我们使用字体图标非常的麻烦 ,这里教给大家一种新的方法:通过类名调用字体图标
使用步骤
- HTML页面引入字体图标中css文件
- 标签直接调用图标对应的类名即可
老规矩,还是用一个简单的例子 这样大家就不用迷茫了,博主辛辛苦苦的为大家书写例题,一定要三步曲哟
类名是怎么来的呢:直接在style.css里面复制
效果图:
修改线性渐变色方法
图中的统计图呈现的是一个颜色渐变的效果 看起来很好看 一起来看看它是如何实现的吧
效果图:
注意修改的是option对象里面的color属性哟
方法一:提倡这种方法 比较简单
color:new echarts.graphic.LinearGradient(
//(x1,y2)点到点(x2,y2)之间进行渐变
0,0,0,1,
[
{offset:0,color:‘#00fffb’ },//0起始颜色
{offset:1,color:‘#0061ce’ },//1结束颜色
]
),
方法二:
// 修改线性渐变色方式 2
color: {
type: ‘linear’,
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0, color: ‘red’ // 0% 处的颜色
}, {
offset: 1, color: ‘blue’ // 100% 处的颜色
}],
globalCoord: false // 缺省为 false
},
销售额统计模块
========
这个模块也是这个项目的一个难点;根据年、季、月、周的切换下面的数据相应的改变
效果图 :
前提是给我们的盒子添加对应的属性
<div class="sales panel">
<div class="inner">
<div class="caption">
<h3>销售额统计</h3>
<a href="javascript:;" class="active" data-type="year">年</a>
<a href="javascript:;" data-type="quarter">季</a>
<a href="javascript:;" data-type="month">月</a>
<a href="javascript:;" data-type="week">周</a>
</div>
<div class="chart">
<div class="label">单位:万</div>
<div class="line"></div>
</div>
</div>
</div>
现将我们的数据提前准备,等我们学到后面的时候,这些数据就是从后台实时获取的,因为现在没有学到,所以现在就是写死我们的数据
var data = {
year: [
[24, 40, 101, 134, 90, 230, 210, 230, 120, 230, 210, 120],
[40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79]
],
quarter: [
[23, 75, 12, 97, 21, 67, 98, 21, 43, 64, 76, 38],
[43, 31, 65, 23, 78, 21, 82, 64, 43, 60, 19, 34]
],
month: [
[34, 87, 32, 76, 98, 12, 32, 87, 39, 36, 29, 36],
[56, 43, 98, 21, 56, 87, 43, 12, 43, 54, 12, 98]
],
week: [
[43, 73, 62, 54, 91, 54, 84, 43, 86, 43, 54, 53],
[32, 54, 34, 87, 32, 45, 62, 68, 93, 54, 54, 24]
]
年、季、月、周的自动切换
//切换
$('.sales .caption').on('click', 'a', function () {
//样式
index = $(this).index() - 1;
$(this).addClass("active").siblings("a").removeClass("active");
var currDate = data[this.dataset.type];
console.log(currDate);
option.series[0].data = currDate[0];
option.series[1].data = currDate[1];
// 重新配好的数据给实例对象
myChart.setOption(option)
})
根据tab的切换 获取相应的数据
var as = $(“.sales .caption a”);
var index = 0;
var timer = setInterval(function () {
index++;
if (index >= 4) {
index = 0;
}
as.eq(index).click();
}, 1000)
//鼠标进入停止定时器,离开,开启定时器
$(".sales").hover(function () {
clearInterval(timer);
}, function () {
clearInterval(timer);
timer = setInterval(function () {
index++;
if (index >= 4) {
index = 0;
}
as.eq(index).click();
}, 1000);
})
半圆形做法
前面只是教大家如何使用echarts图表,但是这种半圆里面是没有的,需要我们自己自己通过它提供的扇形图 自己修改 ,本质还以一个饼形
效果图:
做法:把一个饼形图分成三段,下面一段颜色设置为透明色即可,做一个拱形离不开的是将不透明的那一部分旋转正,在series里面设置调角度 其默认的角度是90度
startAngle :180 /起始角度,支持的范围是[0,360]
注意:此角度不是旋转角度,而是起始角度,
我们先来看看饼图的起始角度
上面这个图是我给大家准备的在线案例图,根据我的这个步骤,不会都很难啊
全国热榜模块制作
效果图: 从上面的动图 大家就可以知道这个模块要实现的功能,根据定时器 去切换到各省份相应的数据,与之前不同的是近30日的数据不是在html里面准备好的,而是动态的存储数据得到的,一起来看看它是如何实现的吧
从这个案例中我们要学到的知识点
- 实际开发中,后台返回的真实数据如何渲染到页面中
- ES6模版字符相关知识-拼接字符串
ES6模版字符:
`${表达式} ` //模版字符串使用返钩号‘’而且允许自动换行 反钩号是tab键上面的那个键
首先准备相关数据
首先来看它里面的属性 city、sales、flag是各省热销的数据 flag的值决定了箭头的方向,true就是箭头向上,反之则向下;
后话
对于面试,说几句个人观点。
面试,说到底是一种考试。正如我们一直批判应试教育脱离教育的本质,为了面试学习技术也脱离了技术的初心。但考试对于人才选拔的有效性是毋庸置疑的,几千年来一直如此。除非你有实力向公司证明你足够优秀,否则,还是得乖乖准备面试。这也并不妨碍你在通过面试之后按自己的方式学习。
其实在面试准备阶段,个人的收获是很大的,我也认为这是一种不错的学习方式。首先,面试问题大部分基础而且深入,这些是平时工作的基础。就好像我们之前一直不明白学习语文的意义,但它的意义就在每天的谈话间。
所谓面试造火箭,工作拧螺丝。面试往往有更高的要求,也迫使我们更专心更深入地去学习一些知识,也何尝不是一种好事。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
后话
对于面试,说几句个人观点。
面试,说到底是一种考试。正如我们一直批判应试教育脱离教育的本质,为了面试学习技术也脱离了技术的初心。但考试对于人才选拔的有效性是毋庸置疑的,几千年来一直如此。除非你有实力向公司证明你足够优秀,否则,还是得乖乖准备面试。这也并不妨碍你在通过面试之后按自己的方式学习。
其实在面试准备阶段,个人的收获是很大的,我也认为这是一种不错的学习方式。首先,面试问题大部分基础而且深入,这些是平时工作的基础。就好像我们之前一直不明白学习语文的意义,但它的意义就在每天的谈话间。
所谓面试造火箭,工作拧螺丝。面试往往有更高的要求,也迫使我们更专心更深入地去学习一些知识,也何尝不是一种好事。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-MtEUuCmk-1713540558478)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!